【问题标题】:Enable Java sha1 raw mode like php sha1启用 Java sha1 原始模式,如 php sha1
【发布时间】:2018-03-11 10:44:15
【问题描述】:

我遇到了 php.sha1 和我的 java 代码的问题。 我的php代码

echo base64_encode(sha1("test", TRUE));
qUqP5cyxm6YcTAhz05Hph5gvu9M=

我的java代码是:

 static String Hash(String input) throws Exception {

    MessageDigest mDigest = MessageDigest.getInstance("SHA1");
    byte[] result = mDigest.digest(input.getBytes());
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < result.length; i++) {
       sb.append((result[i / Byte.SIZE] << i % Byte.SIZE & 0x80) == 0 ? '0' : '1');
    }
    return base64_encode(sb.toString());

}

输出MTAxMDEwMDEwMTAwMTAxMDEwMDA=

我应该如何改变循环以获得相等的字符串?

【问题讨论】:

    标签: java php binary sha


    【解决方案1】:

    这个应该像 RAW SHA-1 一样工作

    String base64 = 
    Base64.getEncoder().encodeToString(MessageDigest.
    getInstance("SHA-1").digest(s.getBytes("ISO-8859-1")));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多