использование MD5 в angular 2+ для шифрования объекта JSON - PullRequest
0 голосов
/ 09 мая 2018

В настоящее время я использую шифрование с использованием 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

1 Ответ

0 голосов
/ 10 мая 2018

Как отмечает @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, даже если они представляют одинаковое содержимое объекта

...