md5加密:
packagecom.ncs.pki.util;
importjava.security.MessageDigest;
importjava.security.NoSuchAlgorithmException;
publicclassMD5Test{
privatestaticMessageDigestdigest=null;
publicsynchronizedstaticfinalStringhash(Stringdata){
if(digest==null){
try{
digest=MessageDigest.getInstance(\"MD5\");
}catch(NoSuchAlgorithmExceptionnsae){
System.err.println(
\"FailedtoloadtheMD5MessageDigest.\"
\"Jivewillbeunabletofunctionnormally.\");
nsae.printStackTrace();
}
}
//Now,computehash.
digest.update(data.getBytes());
returnencodeHex(digest.digest());
}
publicstaticfinalStringencodeHex(byte[]bytes){
StringBufferbuf=newStringBuffer(bytes.length*2);
inti;
for(i=0;ibytes.length;i){
if(((int)bytes0x10){
buf.append(\"0\");
}
buf.append(Long.toString((int)bytes
}
returnbuf.toString();
}
publicstaticStringtest(){
returnnull;
}
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
System.out.println(MD5Test.hash(\"123456\"));
}
}
3des加密:
packagecom.ncs.pki.util;
importjava.security.Key;
importjava.security.SecureRandom;
importjavax.crypto.Cipher;
importjavax.crypto.KeyGenerator;
importsun.misc.BASE64Decoder;
importsun.misc.BASE64Encoder;
publicclassDesEncrypt{
/**
*
*使用DES加密与解密,可对byte[],String类型进行加密与解密密文可使用String,byte[]存储.
*
*方法:voidgetKey(StringstrKey)从strKey的字条生成一个Key
*
*StringgetEncString(StringstrMing)对strMing进行加密,返回String密文String
*getDesString(StringstrMi)对strMin进行解密,返回String明文
*
*byte[]getEncCode(byte[]byteS)byte[]型的加密byte[]getDesCode(byte[]
*byteD)byte[]型的解密
*/
Keykey;
/**
*根据参数生成KEY
*
*@paramstrKey
*/
publicvoidgetKey(StringstrKey){
try{
KeyGenerator_generator=KeyGenerator.getInstance(\"DES\");
_generator.init(newSecureRandom(strKey.getBytes()));
this.key=_generator.generateKey();
_generator=null;
}catch(Exceptione){
e.printStackTrace();
}
}
/**
*加密String明文输入,String密文输出
*
*@paramstrMing
*@return
*/
publicStringgetEncString(StringstrMing){
byte[]byteMi=null;
byte[]byteMing=null;
StringstrMi=\"\";
BASE64Encoderbase64en=newBASE64Encoder();
try{
byteMing=strMing.getBytes(\"UTF8\");
byteMi=this.getEncCode(byteMing);
strMi=base64en.encode(byteMi);
}catch(Exceptione){
e.printStackTrace();
}finally{
base64en=null;
byteMing=null;
byteMi=null;
}
returnstrMi;
}
/**
*解密以String密文输入,String明文输出
*
*@paramstrMi
*@return
*/
publicStringgetDesString(StringstrMi){
BASE64Decoderbase64De=newBASE64Decoder();
byte[]byteMing=null;
byte[]byteMi=null;
StringstrMing=\"\";
try{
byteMi=base64De.decodeBuffer(strMi);
byteMing=this.getDesCode(byteMi);
strMing=newString(byteMing,\"UTF8\");
}catch(Exceptione){
e.printStackTrace();
}finally{
base64De=null;
byteMing=null;
byteMi=null;
}
returnstrMing;
}
/**
*加密以byte[]明文输入,byte[]密文输出
*
*@parambyteS
*@return
*/
privatebyte[]getEncCode(byte[]byteS){
byte[]byteFina=null;
Ciphercipher;
try{
cipher=Cipher.getInstance(\"DES\");
cipher.init(Cipher.ENCRYPT_MODE,key);
byteFina=cipher.doFinal(byteS);
}catch(Exceptione){
e.printStackTrace();
}finally{
cipher=null;
}
returnbyteFina;
}
/**
*解密以byte[]密文输入,以byte[]明文输出
*
*@parambyteD
*@return
*/
privatebyte[]getDesCode(byte[]byteD){
Ciphercipher;
byte[]byteFina=null;
try{
cipher=Cipher.getInstance(\"DES\");
cipher.init(Cipher.DECRYPT_MODE,key);
byteFina=cipher.doFinal(byteD);
}catch(Exceptione){
e.printStackTrace();
}finally{
cipher=null;
}
returnbyteFina;
}
publicstaticvoidmain(String[]args){
System.out.println(\"desdemo\");
DesEncryptdes=newDesEncrypt();//实例化一个对像
des.getKey(\"MYKEY\");//生成密匙
System.out.println(\"key=MYKEY\");
StringstrEnc=des.getEncString(\"111111\");//加密字符串,返回String的密文
System.out.println(\"密文=\"strEnc);
StringstrDes=des.getDesString(strEnc);//把String类型的密文解密
System.out.println(\"明文=\"strDes);
}
} |