【发布时间】:2021-08-03 21:04:45
【问题描述】:
在发出 API 请求之前,我需要在 SHA256 中加密我的密码。我无法在 Angular2 中找到 SHA-256 的任何实现
【问题讨论】:
-
SHA-256 不是加密,而是消息摘要(哈希)。
标签: javascript angular sha256
在发出 API 请求之前,我需要在 SHA256 中加密我的密码。我无法在 Angular2 中找到 SHA-256 的任何实现
【问题讨论】:
标签: javascript angular sha256
我为此使用了sha.js,它非常简单并且成功!
第一个npm install --save sha.js
在您的组件、服务等中导入...:
import * as shajs from 'sha.js';
然后按照文档的建议使用它:
shajs('sha256').update({stringToBeHashed}).digest('hex')
【讨论】:
在我回答你的问题之前,你应该明白SHA256 should not be used for passwords。您还应该知道,客户端密码散列通常不会进行,但许多研究人员都在推动它。问题是很容易做错事。指导here和here。
现在回答您的问题,而不是使用 Angular2,为什么不直接使用 Stanford JavaScript Crypto Library 或 Crypto-Js?这些链接中记录了 SHA256 上的 API。
【讨论】:
SHA-256 和 md5 都提供散列而不是加密。 SHA-256 现在还没有提供任何 angular2 支持。如果你想 hashstring/hashAsciiStr 它在 ts-md5 中非常简单......
ts-md5使用步骤:
npm 安装
npm install ts-md5
在你想要使用的组件中导入类
import {Md5} from 'ts-md5/dist/md5';
散列一些东西
Md5.hashStr('blah blah blah') => hex:string
Md5.hashStr('blah blah blah', true) => raw:Int32Array(4)
Md5.hashAsciiStr('blah blah blah') => hex:string
Md5.hashAsciiStr('blah blah blah', true) => raw:Int32Array(4)
希望对你有所帮助
【讨论】:
你应该直接从 sha.js 导入 shajs
import shajs from 'sha.js';
然后重复使用它:
export class AppComponent {
hash = shajs('sha256').update('Abc123$').digest('hex');
}
【讨论】: