- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Perl 验证加盐密码,但无法解压。
我有一个加盐哈希密码,例如对于 SHA256:SSHA256 = SHA256('密码' + '盐') + '盐'Base64 编码得到 '{SSHA256}eje4XIkY6sGakInA+loqtNzj+QUo3N7sEIsj3fNge5lzYWx0'。
我将这个字符串存储在我的用户数据库中。当用户登录时需要将盐与散列分开,以将提供的密码与盐进行散列,并将结果与从数据库中检索到的结果进行比较。这就是我被困的地方。我似乎没有正确的解压模板将散列(8 位二进制,固定长度,在本例中为 32 字节)与盐(8 位二进制,可变长度)分开。
我试过类似的东西my ($hash, $salt) = unpack('N32 N*', $data);
但这似乎行不通。
我的问题是:我如何解压这个散列(在它被 Base64 解码之后)以在一个变量中获得固定长度的散列和在另一个变量中获得可变长度的盐?
最佳答案
我认为您不必要地重新发明轮子。
您可以使用例如Crypt::SaltedHash轻松验证它,例如:
my $password_entered = $cgi->param('password');my $valid = Crypt::SaltedHash->validate($salted, $password_entered);
一个更长的例子,也展示了在第一个实例中使用 Crypt::SaltedHash 生成加盐密码:
my $csh = Crypt::SaltedHash->new(algorithm => 'SHA-256');$csh->add('secretpassword');my $salted = $csh->generate;# $salted will contain the salted hash (Crypt::SaltedHash picks random# salt for you automatically)# for example: DB x $salted = $csh->generate;0 '{SSHA256}H1WaxHcyAB81iyIPwib/cCUtjqCm2sxQNA1QvGeh/iT3m51w'# validating that against the plaintext 'secretpassword' shows it's right: DB x Crypt::SaltedHash->validate($salted, 'secretpassword');0 1# and trying it with an incorrect password: DB x Crypt::SaltedHash->validate($salted, 'wrongpassword');0 ''
没有理由自己重新发明所有这些。
关于perl - 使用 Perls unpack() 验证加盐哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4477993/
我正在阅读有关如何对 key 进行加盐以使您的加密安全的教程,但无法充分利用它。我不太了解密码学,需要一些帮助。我正在使用 commoncrypto 来加密文件,并且完成了,除了它不安全的事实....
我是一个加密新手,但需要在存储到数据库之前对敏感的个人数据进行加密。我计划将 AES 与 CBC 结合使用,但也想使用盐。然而,我找不到一种方法来做到这一点(除了 BouncyCaSTLe,我的主机由
升级到 php7 后,BCryptPasswordEncoder 抛出以下错误,例如在使用 FOSUserBundle 标准注册页面注册时: "Use of the 'salt' option to
这个简单的代码接受用户输入并将给定字符串的 sha256 打印到标准输出。 #include #include #include #include int main() { SHA256_C
我想知道以下设置的严重问题是什么: 用户名/密码登录方案Javascript/ajax 从服务器请求盐值(我们在前面的问题中已经确定盐不是 secret 值)Javascript 对密码和盐执行 SH
我一直在 ruby 应用程序中创建加盐密码,我认为这是标准方式: password_salt = BCrypt::Engine.generate_salt password_hash = BCry
我听说过有人在使用这种方法,想知道这意味着什么。我只是知道这是个坏主意! 据我所知,在将哈希存储到数据库之前对密码进行加盐处理的主要目的是使每个哈希算法都独一无二,因此在尝试破解它时需要为每个用户提供
我需要编码/加密数据库 ID 并将它们附加到我的 URL。安全性不是我要处理的问题,但我正在寻找具有适度安全性的东西。主要目标是拥有唯一且 URL 安全的短 ID。 下面的代码片段似乎可以满足我的需要
我正在使用 RC4 C++ 程序进行更多工作,以与命令行参数兼容。 我想知道是否有人可以指出一些关于命令行 openssl rc4 在加密和解密时如何使用盐的体面文档的方向,这样我就可以在我的程序中加
我有一个字符串需要在 C# 中使用 salt 进行哈希处理并匹配它在 PHP 中的结果。 C#代码如下: string stringToHash = "123"; st
这个问题在这里已经有了答案: 关闭 9 年前。 Possible Duplicate: Secure hash and salt for PHP passwords 我在 stackoverflow
我有一个项目,显然该软件的设计者没有考虑安全性。 密码以明文形式存储并通过明文传输。所以我剩下的任务就是解决这个问题。 我对安全性有点生疏,所以我的问题是:对于在线用户密码身份验证,使用散列/加盐技术
盐的新手,我添加了第一个服务器(wx-1),它可以工作,但是当我添加不同的服务器时,test.ping 没问题,但是当执行 salt 'qing' state.highstate 时,失败,错误信息为
我使用此 openssl 命令创建了一条加密消息: openssl enc -aes-256-cbc -salt -in plaintext.txt -out cipher.enc 我尝试过 Cryp
我正在对许多列执行联接,这些列有时可能包含数十亿行空值,因此我想对列加盐以防止联接后出现倾斜,如 Jason Evan 的帖子中提到的:https://stackoverflow.com/a/4339
我是一名优秀的程序员,十分优秀!