Utilisation de SHA1 en Java donne pas le même résultat en JS
Bonjour à tous.
J’ai un code Java que j’ai adapté en JavaScript dans les deux cas j’utilise SHA1 et SHA256 mais je retrouve pas le même hash.
Code java:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| byte[] bytes = str.getBytes("UTF-16LE");
byte[] decode = Base64.decode(str3.getBytes(), 0);
int length = bytes.length + decode.length;
byte[] bArr = new byte[length];
int i2 = 0;
while (i2 < length) {
bArr[i2] = i2 < decode.length ? decode[i2] : bytes[i2 - decode.length];
i2++;
}
String encodeToString = Base64.encodeToString(SHA1(bArr), 0);
String encodeToString2 = Base64.encodeToString(SHA256(bArr), 0); |
Code JS:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| const encoder = new TextEncoder('UTF-16');
const toBytes = (text) => {
return encoder.encode(text);
};
//if (str3 !== null && str3.length !== 0) {
var bytes = toBytes('2807');;
var decode = btoa(toBytes(result.salt));
var length = bytes.length + decode.length;
var bArr = new Uint16Array(length);
var i2 = 0;
while (i2 < length) {
bArr[i2] = i2 < decode.length ? decode.charCodeAt(i2) : bytes[i2 - decode.length];
i2++;
}
var encodeToString = btoa(CryptoJS.SHA1(bArr));
var encodeToString2 = btoa(CryptoJS.SHA256(bArr));
console.log(encodeToString);
console.log(encodeToString2); |
Une idée ce que j’ai fais de travers?
Merci d’avance
Olivier