启用 Java sha1 原始模式,如 php sha1
Enable Java sha1 raw mode like php sha1
我遇到了 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")));
我遇到了 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")));