使用CryptoJS方法对对象进行数字签名?

时间:2019-07-14 19:34:51

标签: javascript typescript cryptography cryptojs

我只想看看我是否做对了。 I have created a stackblitz demo here.

我想对对象进行数字签名。我认为这样做的方法是:

1)创建对象

const o = { title: 'All dogs go to heaven', publishDate: new Date(), 

2)JSON。使用规范的json实现对其进行字符串化

const s = stringify(o); //canonical json implementation of stringify

3)将其通过CryptoJS Hmac256和Base64函数传递,如下所示:

console.log(enc.Base64.stringify(HmacSHA256(s, 'secret')));

我认为这应该适用于任何对象,对吗? (不管它是否像这里的对象一样简单,都是包含应用程序状态的对象,该状态可能为兆字节。)

我问的部分原因是,这个Auth0 article产生了这样的信号:

HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret)

颠倒函数调用的顺序(最后一次调用HMACSHA256)。

0 个答案:

没有答案