java.sercurity MessageDigest.getInstance("MD5")报错!


clipboard.png

clipboard.png

1、为什么这里getInstance()会报错,我用的jdk1.8 难道是版本调整了,但是也应该有提示啊?
2、解释一下 Integer.toHexString((0x000000ff & s[i]) | 0xffffff00).substring(6) 的用法?

java md5 摘要

cnm1994 9 years, 3 months ago

能不能介绍一些segmentfault上的java大神认识一下?谢谢!

早睡早起身体好 answered 9 years, 3 months ago

你的代码是啥,报的啥错误?下面这段代码好好的


 import java.security.*;

public class Test {
    public static void main(String[] args) throws Exception {
        MessageDigest md5 = MessageDigest.getInstance("md5");
        System.out.println(md5);
    }
}

  1. MessageDigest.getInstance() 是静态方法,这个 @tl6h13 已经说了

  2. 0x00ff & s[i] 是取 s[i] 的低 8 位,之后再与 0xffffff00 相或,结果是前面 6 个 f(24位都是1),后面 8 位是 s[i] 的低 8 位。转换成 Hex 之后一共是 8 个字符, substring(6) 是从第6个开始取,也就是取到后面2位,也就是 s[i] 低 8 位的十六进制——好绕。

胡来的左手 answered 9 years, 3 months ago

Your Answer