服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java常用加密算法应用md5,sha,rsa

【引自人人都爱mqj的博客】1、md5加密,常用于加密用户名密码,当用户验证时,没有解密的方法。

protected byte[] encrypt(byte[] obj) ...{

try ...{

messagedigest md5 = messagedigest.getinstance("md5");

md5.update(obj);

return md5.digest();

} catch (nosuchalgorithmexception e) ...{

e.printstacktrace();

}

}

2、sha加密,与md5相似的用法,只是两者的算法不同。

protected byte[] encrypt(byte[] obj) ...{

try ...{

messagedigest sha = messagedigest.getinstance("sha");

sha.update(obj);

return sha.digest();

} catch (nosuchalgorithmexception e) ...{

e.printstacktrace();

}

}

3、rsa加密,ras加密允许解密。常用于文本内容的加密。

import java.security.keypair;

import java.security.keypairgenerator;

import java.security.interfaces.rsaprivatekey;

import java.security.interfaces.rsapublickey;

import javax.crypto.cipher;

/** *//**

* <b>rsaencrypt</b>

* <p>

* @author maqujun

* @see

*/

public class rsaencrypt ...{

/** *//**

* main method for rsaencrypt.

* @param args

*/

public static void main(string[] args) ...{

try ...{

rsaencrypt encrypt = new rsaencrypt();

string encrypttext = "encrypttext";

keypairgenerator keypairgen = keypairgenerator.getinstance("rsa");

keypairgen.initialize(1024);

keypair keypair = keypairgen.generatekeypair();

// generate keys

rsaprivatekey privatekey = (rsaprivatekey) keypair.getprivate();

rsapublickey publickey = (rsapublickey) keypair.getpublic();

byte[] e = encrypt.encrypt(publickey, encrypttext.getbytes());

byte[] de = encrypt.decrypt(privatekey,e);

system.out.println(encrypt.bytestostring(e));

system.out.println(encrypt.bytestostring(de));

} catch (exception e) ...{

e.printstacktrace();

}

}

/** *//**

* change byte array to string.

* @return byte[]

*/

protected string bytestostring(byte[] encrytpbyte) ...{

string result = "";

for (byte bytes : encrytpbyte) ...{

result += (char) bytes.intvalue();

}

return result;

}

/** *//**

* encrypt string.

* @return byte[]

*/

protected byte[] encrypt(rsapublickey publickey, byte[] obj)  ...{

if (publickey != null) ...{

try ...{

cipher cipher = cipher.getinstance("rsa");

cipher.init(cipher.encrypt_mode, publickey);

return cipher.dofinal(obj);

} catch (exception e) ...{

e.printstacktrace();

}

}

return null;

}

/** *//**

* basic decrypt method

* @return byte[]

*/

protected byte[] decrypt(rsaprivatekey privatekey, byte[] obj) ...{

if (privatekey != null) ...{

try ...{

cipher cipher = cipher.getinstance("rsa");

cipher.init(cipher.decrypt_mode, privatekey);

return cipher.dofinal(obj);

} catch (exception e) ...{

e.printstacktrace();

}

}

return null;

}

}

以上代码是我个人在项目中的积累。当然加密算法还有很多,以后用到的话再加入。

扫描关注微信公众号