【Java】常用加密技术与代码研究总结.docVIP

  • 5
  • 0
  • 约 18页
  • 2017-02-08 发布于重庆
  • 举报

【Java】常用加密技术与代码研究总结.doc

【Java】常用加密技术与代码研究总结

【Java】常用加密技术与代码研究总结 从现在加密算法的复杂性来看Base64这种都不好意思说自己是加密,不过对于完全不懂计算机的人来说也够用了。采用Base64编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。 Base64编码一般用于url的处理,或者说任何你不想让普通人一眼就知道是啥的东西都可以用Base64编码处理后再发布在网络上。 [java] view plain copy 在CODE上查看代码片派生到我的代码片 import java.util.Base64; import com.amuro.strategy.IStrategy; /** * Base64算法基于64个基本字符,加密后的string中只包含这64个字符 * @author Amuro * */ public class Base64Strategy implements IStrategy { public String encode(String src) { byte[] encodeBytes = Base64.getEncoder().encode(src.getBytes()); return new String(encodeBytes); } public String decode(String src) { byte[] decodeBytes = Base64.getDecoder().decode(src.getBytes()); return new String(decodeBytes); } } 2、Base64编码对应关系表 三、消息摘要算法(Message Digest) 消息摘要(Message Digest)又称为数字摘要(Digital Digest)。它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。HASH函数的抗冲突性使得如果一段明文稍有变化,哪怕只更改该段落的一个字母,通过哈希算法作用后都将产生不同的值。而HASH算法的单向性使得要找到哈希值相同的两个不同的输入消息,在计算上是不可能的。所以数据的哈希值,即消息摘要,可以检验数据的完整性。 用大白话来说,任何一段数据应该都和人一样是唯一的,唯一的标识是什么,人类的话目前就是指纹,而数据的指纹是什么呢?没错,就是消息摘要算法产生的这一段String。比如我们在注册网站的时候,客户端向服务器传输的,应该是我们输入的密码进行消息摘要处理后的内容,这样就算服务器被攻破,Hack也无法知道用户真实的密码是什么。不过有说现在MD5和SHA已经被攻破了,具体大家可以谷歌。 1、MD5 [java] view plain copy 在CODE上查看代码片派生到我的代码片 import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import mons.codec.binary.Hex; import com.amuro.strategy.IStrategy; /** * 消息摘要算法 * @author Amuro * */ public class MD5Strategy implements IStrategy { public String encode(String src) { try { MessageDigest md = MessageDigest.getInstance(MD5); byte[] encodeBytes = md.digest(src.getBytes()); return Hex.encodeHexString(encodeBytes); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return null; } public String decode(String src) {

文档评论(0)

1亿VIP精品文档

相关文档