常见的加密算法基本的单向加密算法:BASE64严格地说,属于编码格式,而非加密算法MD5(MessageDigestalGorithm5,信息摘要算法)SHA(SecureHashAlgorithm,安全散列算法)HMac(HashMess
常见的加密算法
基本的单向加密算法:
BASE64严格地说,属于编码格式,而非加密算法
MD5(MessageDigestalGorithm5,信息摘要算法)
SHA(SecureHashAlgorithm,安全散列算法)
HMac(HashMessageAuthenticationCode,散列消息鉴别码)
复杂的对称加密(DES、PBE)、非对称加密算法:
DES(DataEncryptionStandard,数据加密算法)
PBE(PassWord-basedencryption,基于密码验证)
RSA(算法的名字以发明者的名字命名:RonRivest,AdiShamir和LeonardAdleman)
DH(Diffie-Hellman算法,密钥一致协议)
DSA(DigitalSignatureAlgorithm,数字签名)
ECC(EllipticCurvesCryptography,椭圆曲线密码编码学)
数字签名
算法简述
数字签名算法可以看做是一种带有密钥的消息摘要算法,并且这种密钥包含了公钥和私钥。也就是说,数字签名算法是非对称加密算法和消息摘要算法的结合体。
特点
数字签名算法要求能够验证数据完整性、认证数据来源,并起到抗否认的作用。
原理
数字签名算法包含签名和验证两项操作,遵循私钥签名,公钥验证的方式。
签名时要使用私钥和待签名数据,验证时则需要公钥、签名值和待签名数据,其核心算法主要是消息摘要算法。
消息摘要
String beforeDeGISt = "asdf"; System.out.println("摘要前:"+beforeDegist); //初始信息要转换成字节流的形式 byte[] plainText = beforeDegist.getBytes("UTF8"); //使用getInstance("算法")来获得消息摘要,这里使用SHA-1的160位算法或者MD5算法 geDigest messageDigest = MessageDigest.getInstance("SHA-1"); MessageDigest messageDigest = MessageDigest.getInstance("MD5"); System.out.println("/n" + messageDigest.getProvider().getInfo()); //开始使用算法 messageDigest.update(plainText); //输出算法运算结果 String afterDegist = new String(messageDigest.digest(),"UTF8"); System.out.println("摘要后:"+afterDegist);
--结束END--
本文标题: Java加密解密和数字签名完整代码示例
本文链接: https://lsjlt.com/news/220543.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0