【问题标题】:using MD5 in angular 2+ to encrypt a JSON object在 Angular 2+ 中使用 MD5 加密 JSON 对象
【发布时间】:2018-05-09 15:00:29
【问题描述】:

我目前正在使用 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

【问题讨论】:

  • MD5 不是加密算法。

标签: angular cryptography angular5 md5 cryptographic-hash-function


【解决方案1】:

正如@James 在 cmets 中指出的那样,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 哈希值,即使它们代表相同的对象内容

【讨论】:

    猜你喜欢
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    相关资源
    最近更新 更多