java MD5(Message Digest Algorithm 5)加密算法

在工作项目中,我们接受用户的个人信息和类似账号密码此类数据时必须对其进行加密,否则可能会导致信息的泄露引发安全性问题。加密的方式有很多种,其中较为常用的加密方式是MD5加密算法和SHA-1加密算法,这两种算法中MD5较为常用。MD5用于确保信息传输完整一致,是一种计算机广泛使用的哈希算法,主流编程语言普遍已有MD5实现。

MD5算法

MD5是一种通过固定的算法将任意位长的数据转化为固定长度128位(16字节)长的加密算法。这种算法容易计算,从原数据得到MD5值是很容易操作的。而且对于极其相似两个的原数据,即使相差只有一位,最后得到的MD5加密结果都是有很大区别的。而且MD5具有很强的抗碰撞性,即使已知原数据和MD5的值想找到一个具有相同的MD5值的伪造数据也很困难。

但是随着MD5算法被破解,通过杂凑算法伪造数据的可能性也是有的。但这并不妨碍我们在电子商务领域对MD5算法的使用,只是当需要传输安全性要求极高的数据时需要采用加密程度更高、安全性更好的加密算法。普通的数据传输及个人信息和类似账号密码传输都可以使用MD5加密算法。

MD5算法加密原理

在进行JAVA实现前,我们有必要先了解MD5算法加密的原理,因为我们的目的并不是专门研究密码领域,所以这里仅简要的表述算法加密的原理,为我们使用java来实现加密做铺垫。

1.填充并处理原数据

MD5加密算法会将任意长度的数据转换为128位字串。在进行加密前的第一步要做的事将数据填充至512位(512位是四个128位)长度的倍数。无论数据是否是512位的倍数,我们都将其进行填充,直到总长度为:N*512

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值