/**
* byte hex utility class
**/public class bytehexutils
return bf.array();
}/**
* @param bytes
**/public static string bytes2hex(byte bytes)
return result;
}}
/**
* base64 utility class
**/import sun.misc.base64decoder;
import sun.misc.base64encoder;
public class base64utils
/*** base64 to byte
**/public static byte decode(string base64) throws ioexception
public static void main(string args) throws ioexception
}
/**
* digest utility class with md5 and sha-1
**/public static class digestsutils
/*** sha-1; encrypt without iterations
** @param bytes encrypt byte array
* @param salt encrypt salt
**/public static byte sha1(byte bytes, byte salt)
/*** sha-1;
** @param bytes encrypt byte array
* @param salt encrypt salt
* @param iterations encrypt iterations
**/public static byte sha1(byte bytes, byte salt, int iterations)
/*** md5
**/public static byte md5(byte bytes)
/*** md5
**/public static byte md5(byte bytes, byte salt)
/*** md5
**/public static byte md5(byte bytes, byte salt, int iterations)
/*** 對salt生成的位元組是平台預設編碼
** @see charset#defaultcharset()
**/public static byte generatesalt()
/*** digest encode md5
** @param newstr new str
* @param oldmd5 old md5 bytes
* @param salt md5 salt
* @param iterations md5 digest iterations
* @see arrays
**/public static boolean decodemd5(byte newstr, byte oldmd5, byte salt, int iterations)
/*** digest encode sha-1
** @param newstr new str
* @param oldsha1 old sha-1 bytes
* @param salt sha-1 salt
* @param iterations sha-1 digest iterations
* @see arrays
**/public static boolean decodesha1(byte newstr, byte oldsha1, byte salt, int iterations)
/*** digest encode
** @param newstr new str
* @param olddigest old digest bytes
* @param salt md5 salt
* @param iterations md5 digest iterations
* @see arrays
**/private static boolean decode(string algorithm, byte newstr, byte olddigest, byte salt, int iterations) ", bytehexutils.bytes2hex(newdigest));
if (arrays.equals(newdigest, olddigest)) else
} else ", bytehexutils.bytes2hex(newdigest));
if (arrays.equals(newdigest, olddigest)) else }}
/*** digest with salt and iterations
**/private static byte digest(byte bytes, string algorithm, byte salt, int iterations)
byte result = e.digest(bytes);
for (int i = 1; i < iterations; ++i)
return result;
} catch (generalsecurityexception e)
return null;
}public static void main(string args) else
byte sha1 = digestsutils.sha1(teststring.getbytes());
system.out.println(bytehexutils.bytes2hex(sha1));
if (digestsutils.decodesha1("123456".getbytes(), sha1, null, 1)) else
}}
在這裡插入**片
``` /**
* rsa utility class
**/public static class rsautils ,並生成,
* 得到,便可以通過getpublic和getprivate分別獲取
* 公鑰和私鑰.為了方便儲存,將其使用base64編碼轉換為string型別的列印字元
**/public static keypair getkeypair() throws exception
/*** get public key
** @see base64utils#encode(byte)
**/public static string getpublickeystr(keypair keypair)
/*** get primary key
** @see base64utils#encode(byte)
**/public static string getprivatekeystr(keypair keypair)
/*** 將string型別的金鑰轉換為publickey和privatekey物件
**/public static publickey string2publickey(string publickeystr) throws exception
/*** 將string型別的金鑰轉換為
**/public static privatekey string2privatekey(string privatekeystr) throws exception
/*** 使用公鑰加密
**/public static byte publicencrypt(byte content, publickey publickey) throws exception
/*** 使用私鑰解密
**/public static byte privatedecrypt(byte content, privatekey privatekey) throws exception
public static void main(string args) throws exception
}
加密和解密
public class desc public static string decode string data catch descryptoserviceprovider cryptoprovider new descryptoserviceprovider memorystream ms n...
加密和解密
公鑰密碼體制的核心思想是 加密和解密採用不同的金鑰。這是公鑰密碼體制和傳統對稱密碼體制的最大區別。對於傳統對稱密碼而言,密文的安全性完全依賴於金鑰的保密性,一旦金鑰洩露,將毫無保密性可言。但是公鑰密碼體制徹底改變了這樣狀況,在公鑰密碼體制中,公鑰是公開的,只有私鑰是保密的,知道公鑰和密碼演算法要推測...
加密和解密
目錄介紹 2.對稱加密和非對稱加密 3.關於單向加密 4.加密和解密 展示 5.rsa非對稱加解密 1.1 問答環節 1.2 加解密概況2.1 什麼是對稱加密 2.2 什麼是非對稱加密 2.3 常見對稱加密有什麼 2.4 常見非對稱加密有什麼 2.5 非對稱加密用途 陌生人通訊 支付寶支付加密 4....