J'ai cette méthode d'encryptage en Scala, que je veux convertir en NodeJS pour un microservice :
val key = "very-secret-key"
val id1 = "1001"
val id2 = "2002"
val id3 = "3003"
val mac = Mac.getInstance("hmacSHA256")
mac.init(new SecretKeySpec(key.getBytes, "hmacSHA256"))
val digest = mac.doFinal(id1.getBytes ++ id2.getBytes ++ id3.getBytes)
new String(UrlBase64.encode(digest)).replace(".", "")
a essayé de le faire avec createHmac
de crypto
et en convertissant en octets avec Buffer
mais le jeton de sortie n'est pas le même que celui que j'ai généré en Java
import { createHmac } from 'crypto';
const id1 = Buffer.from('1001', 'base64');
const id2 = Buffer.from('2002', 'base64');
const id3 = Buffer.from('3003', 'base64');
const buffer = Buffer.from("very-secret-key", 'base64');
const token = createHmac('sha256', buffer).digest('base64').replace('.', '');
Je ne sais pas comment ajouter les octets de la mémoire tampon au jeton. mac.doFinal(id1.getBytes ++ id2.getBytes ++ id3.getBytes)