java - 启用 Java sha1 原始模式,如 php sha1

标签 java php binary sha

我的 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=

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

最佳答案

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

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

关于java - 启用 Java sha1 原始模式,如 php sha1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46490323/

相关文章:

php - 回溯迷宫生成(将所有内容转换为二维数组)

database - 在数据库中存储图像的最佳格式是什么?

java - 正则表达式解析器逐步Java

javascript - 广告代码回传烦恼

php - 如何替换字符串中的一两个连续换行符?

c++ - 使用分而治之法将二进制转换为十进制

matlab - 翻转向量的最后 3 位

java - 该方法必须返回int类型的结果,java

java - 如何在 react 器中编码以更新 cassandra 数据库记录中的特定字段

java - 从文本文件中读取 json