0

我目前正在使用 npm 的“ts-md5”实现加密。我已经编写了代码以以下方式加密字符串

import {Md5} from 'ts-md5/dist/md5';

const md5 = new Md5();
console.log(md5.appendStr('hello').end());

我可以使用什么 md5 函数/机制来加密我的以下 JSON 对象?

myObj = { "name":"John", "age":30, "car":null };

我的角度版本是 5.2

4

1 回答 1

1

正如@James 在评论中指出的那样,md5 是一种散列算法,而不是加密算法(意味着它是单向的,您无法将 md5 散列解密回其原始数据)。散列通常用于数据完整性。

忽略所有这些,要回答有关如何 md5 散列对象的问题,您可以使用JSON.stringify(obj)将对象转换为字符串表示形式,然后只需 md5 散列该字符串:

console.log(md5.appendStr(JSON.stringify(myObj)).end());

这样做的一个潜在缺点是从对象到 JSON 字符串的序列化顺序会影响输出 md5 值,例如:

JSON.stringify({a:1, b:2})
"{"a":1,"b":2}"
JSON.stringify({b:2, a:1})
"{"b":2,"a":1}"

两个字符串将具有不同的 md5 哈希值,即使它们代表相同的对象内容

于 2018-05-10T02:48:55.287 回答