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 java : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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