了解cryptojs中不同的加密模式。

问题描述 投票:0回答:1

我正在学习各种散列技术,发现了一个有趣的库,可以从以下方面入手。隐性Js

在文档中,有多个选项定义如下hashingHMACPBKDF2CiphersEncoders。

我的理解是哈希是为了生成密文。HMAC是关于生成信息验证码。但我很难区分PBKDF2、密码器和编码器。该当选择哪一个?

任何指点都是有帮助的。

javascript cryptojs
1个回答
1
投票

基于密码的密钥派生函数2 - PBKDF2是用来创建加密密钥的函数,这些密钥更难用蛮力来实现。键盘拉伸。 因为人类很懒,创建密码太容易被蛮干了。

比如:我们最喜欢的密码是 "password"

给予 "5C52FBAE9A4D97A49D14C8AF338DA55C "的盐。

密码密钥变为(Hex)A2EB261802FFD1965D034AC252E880A44955078D6D4F12EDCDF6D03549F0(B64)ousmGAL0ZZdA0rCUuiApElVB41tTxLtzfbQNUnw。

试一试 此处

很明显,哈希值不像 "密码 "本身那么容易被破解。

尽管如此,使用预先计算的哈希值还是有可能的。你可以看到更多 在这里。

密码器 另一方面,构成了执行加密和解密的方法。你在cryptoJs中看到的一些密码是基本的AES、DES、三重DES等。

加密器 是简单的用于Encoding,其中编码是非常通用的。它主要是用来转换数据,使另一个系统能够理解它。在技术领域,这主要是因为每个系统架构和技术都有自己的解释。不同的应用会根据自己的需要理解不同的编码。

综上所述。

加密和编码是两种设计方式,而PBKDF2是一种生成加密密钥(哈希)的方法,是一种设计方式。编码器是用来将数据编码成可以被另一个系统传输或解释的形式。

把它放在上下文中。

如果我们想把密码存储在数据库中,我们就会对它进行哈希处理,因为我们不需要知道密码是什么(不需要反转)。然而,当我们向朋友发送加密的邮件时,我们希望能够逆转加密(解密)。否则内容就会丢失。当邮件发送后,我们添加了一个附件。附件的编码方式是其他邮件客户端可以解密的,否则其他系统无法打开附件,或者会错误的解释发送的数据。

所以Encoding和Encrypting是类似的,编码文本和加密文本都可以反转。然而,编码文本是指任何人或任何系统都可以对编码文本进行反转,因为编码方案是公开的,但加密文本,如密码文本是指只有特定的个人,即拥有密钥或解密算法的人可以反转。在上面的例子中,我们希望我们的附件可以被任何系统解读,但我们不希望电子邮件的内容包括附件被所有人打开。


0
投票

PBKDF2 当您想对密码进行哈希处理,但使用通常的哈希函数时,您的密码很容易受到 词典攻击. 所以这里有PBKDF2和 .

密码器: 这些都是正常的加密功能。如果你想发送一些加密的信息,只有拥有正确密钥的人才能解密它。

编码器: 适用于案文 编码 格式:

© www.soinside.com 2019 - 2024. All rights reserved.