zoukankan      html  css  js  c++  java
  • atitit.md5算法的原理 与 总结

    atitit.md5算法的原理 与 总结

     

     

    1MD5的位数 1281

    2字节数组转换为32位字符串 base161

    2.1. 十六进制字符用4个二进制位来表示1

    2.2. byte[]和十六进制字符串相互转换2

    3md5base64表示法3

    4参考3

     

     

    1. MD5的位数 128位

     

    生成一个128为的字节数组。。

     

     

    2. 字节数组转换为32位字符串 base16

    4位可以1111

     

    正好0--f 可以完整的标识4位比特。。

    2.1. 十六进制字符用4个二进制位来表示

    十六进制的每个字符需要用4位二进制位来表示

    2的四次方等于16。所以要用4个二进制位表示一个十六进制字符

     

    作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.csdn.net/attilax

     

    如下所示:

    0

    0000

    1

    0001

    2

    0010

    3

    0011

    4

    0100

    5

    0101

    6

    0110

    7

    0111

    8

    1000

    9

    1001

    A

    1010

    B

    1011

    C

    1100

    D

    1101

    E

    1110

    F

    1111

    2.2. byte[]和十六进制字符串相互转换

    Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示。

    所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果

    new String(H) + new String(L)。

    同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上。

    根据以上原理,我们就可以将byte[] 数组转换为16进制字符串了,当然也可以将16进制字符串转换为byte[]数组了

     

    3. md5的base64表示法

    4. 参考

    Java byte数组与十六进制字符串互转 鑫鑫哥哥呀的个人页面 开源中国社区.htm

    Java利用MessageDigest获取字符串或文件MD5详解 鼠穴 开源中国社区.htm

  • 相关阅读:
    JAVA程序的运行机制
    DOS命令
    垃圾回收
    eureka的简单使用
    各微服务之间的调用
    各层调用关系与注解使用
    bean管理xml方式
    Lombok介绍和使用
    java特性 JDK JRE JVM
    git克隆 文件夹
  • 原文地址:https://www.cnblogs.com/attilax/p/15198881.html
Copyright © 2011-2022 走看看