本文实例总结了java常用加密算法。分享给大家供大家参考,具体如下:
项目中第一次深入地了解到加密算法的使用,现第一阶段结束,将使用到的加密算法和大家分享一下:
首先还是先给大家普及一下常用加密算法的基础知识
基本的单向加密算法
base64 严格地说,属于编码格式,而非加密算法
md5(message digest algorithm 5,信息摘要算法)
sha(secure hash algorithm,安全散列算法)
复杂的加密算法
rsa(算法的名字以发明者的名字命名:ron rivest, adishamir 和leonard adleman)
des/3des(digital signature algorithm,数字签名)
国密算法
sm2/sm4(是由国家密码管理局编制的一种商用密码分组标准对称算法)
使用方法:
base64
public static byte[] encode2base64(byte[] bytes) {
byte[] bts = base64.encodebase64(bytes);
return bts;
}
public static byte[] decode2base64(string str) {
byte[] bts = base64.decodebase64(str);
return bts;
}
md5
public static string md5(string str) {
try {
messagedigest digest = messagedigest.getinstance("md5");
return new string(digest.digest(str.getbytes()));
} catch (nosuchalgorithmexception e) {
e.printstacktrace();
}
return "";
}
sha-1
public static byte[] sha1tobytes(string str) {
try {
messagedigest digest = messagedigest.getinstance("sha-1");
byte[] bts = digest.digest(str.getbytes());
return bts;
} catch (exception e) {
e.printstacktrace();
}
return null;
}
des/3des
public static byte[] encryptmode(string keystr, byte[] src) {
try {
// 生成密钥
secretkey deskey = new secretkeyspec(keystr.getbytes(), "desede");
// 加密
cipher c1 = cipher.getinstance("desede");
c1.init(cipher.encrypt_mode, deskey);
return c1.dofinal(src);
} catch (java.security.nosuchalgorithmexception e1) {