草庐IT

cts-hmac-sha

全部标签

php - PHP 的 hash_hmac 函数的 C++ 等价物是什么?

我正在将PHP应用程序移植到C++。PHP应用程序正在使用此函数:hash_hmac—GenerateakeyedhashvalueusingtheHMACmethod如果我有这段代码,它实际上在做什么?$sStr=hash_hmac('sha256',$mydata,$mykey,$raw=true)我知道它使用sha256和我的key加密一些数据,但我如何在C++中执行此操作?我找到了hmac和sha2库,但不确定它们是否是我需要的。 最佳答案 我会考虑调查OpenSSL,一个可移植且完整的密码库(尽管它的名字,它不只是做SSL

php - 为什么像 sha1 这样的散列函数最多只使用 16 个不同的字符(十六进制)?

抱歉我有这种好奇心。sha1使用[a-f0-9]字符作为它的散列函数。我可以知道为什么它不使用所有可能的字符[a-z0-9]通过使用所有可用的字符它可以大大增加可能的不同哈希的数量,从而降低可能发生冲突的可能性.如果您认为这不是一个真正的问题,请发表评论,我会立即删除此问题。===如答案中所述,sha1NOT仅使用16个字符。正确的事实是:sha1是160位的二进制数据(引文)。我添加这个是为了防止混淆。 最佳答案 您将表示与内容混淆了。sha1是160位的二进制数据。您可以用以下方式轻松地表示它:hex:0xf1d2d2f924e

php - 使用 sha1 密码散列法恢复密码

我想为我的网站实现忘记密码功能。我使用sha1散列密码。我将如何为用户恢复它?实现它的最佳方法是什么? 最佳答案 简短的回答,你不能。您想实现密码重置功能,而不是密码检索功能。散列密码的全部意义在于您无法存储用户的密码,如果丢失也无法恢复。This应该让您大致了解如何允许用户重置忘记的密码: 关于php-使用sha1密码散列法恢复密码,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions

php - Node Crypto createHmac() 输出与具有相同输入的 PHP hash_hmac() 输出不同吗?

我正在尝试在Node.js中复制一个PHP哈希生成函数。此哈希用作API的一部分。PHP版本创建系统接受的正确输出。尽管我认为函数的输入相同,但Node版本会创建不同的输出。这是因为PHP和NodeHMAC函数的工作方式有一些根本不同吗?还是因为我只是缺少字符编码的一些怪癖?还是我只是搞砸了其他事情?PHP代码$url='https://example.com/api/endpoint';$user='apiuser';//Examplekey$key='+raC8YR2F+fZypNJ5q+CAlqLFqNN1AlAfWwkwJLcI7jrAvppjRPikWp523G/u0BLSp

使用 HMAC+nonce 存储 PHP 密码 - nonce 随机性重要吗?

几年前,我在stackoverflow上询问过如何使PHP密码存储安全。mainanswer建议使用以下哈希算法:functionhash_password($password,$nonce){global$site_key;returnhash_hmac('sha512',$password.$nonce,$site_key);}答案建议使用随机nonce。与简单的唯一随机数相比,随机数有什么优势吗?例如,每个用户可以有自己的ID,该ID不会改变。但是,我们假设用户ID是连续的(使用MySQL的自动递增功能构建),因此不是随机的。用户ID是一个好的随机数还是随机性很重要?现在,每个用

php - 拉维尔 5 : Using SHA1 instead of Bcrypt

我正在尝试扩展laravel5中的默认BcryptHashServiceProvider,以改为使用SHA1加密。使用这个问题的答案:HowtouseSHA1encryptioninsteadofBCryptinLaravel4?官方文档位于http://laravel.com/docs/5.0/extending#container-based-extension,我设法编写了以下代码:在app/Providers/ShaHashServiceProvider.phpuseApp\ShaHasher;useIlluminate\Hashing\HashServiceProvider;

php - PayPal 对 SHA-256 证书的更改

我一直收到来自PayPal的电子邮件,内容是关于他们在支持SHA-256证书方面所做的更改,并警告我可能必须更新我网站上的内容。我使用PayPal的IPN服务,该服务最初是在我的网站上设置的(我编写的所有自定义PHP代码,没有预先构建的购物车)并且自2008年以来一直运行得非常愉快。我的主机是共享主机,因为它不是一个非常大或繁忙的网站。我们在2008年7月1日运行PHP5.2.17、Apache2.2.3(CentOS)和OpenSSL0.9.8e-fips-rhel5的托管平台(我从PHP的phpinfo()函数中获得了所有这些信息)。由于我无法更新服务器上的任何软件,因此我认为任何

PHP - MD5、SHA、散列安全

我是一个用PHP构建的新网站的开发人员,我想知道什么是最好的用于散列的东西。我查看了md5和sha1,但还有什么更安全的吗?很抱歉,如果这是一个笨拙的问题,但我是PHP安全的新手,我正在努力让我的网站尽可能安全。还有什么是盐?谢谢,瓦西姆 最佳答案 首先,md5和sha1已被证明可以抵抗碰撞攻击并且可以是彩虹很容易列出(当他们看到你的哈希值在他们的常用密码数据库中是否相同时)。目前有两种足够安全的密码可供您使用。第一个是sha512。sha512是SHA2的子版本。SHA2尚未被证明是vunrable碰撞攻击和sha512将生成一个

解决GitHub报错You‘re using an RSA key with SHA-1, which is no longer allowed. Please use a newer client

解决GitHub报错You'reusinganRSAkeywithSHA-1,whichisnolongerallowed.Pleaseuseanewerclient生成密钥对修正事项1:使用Git生成密钥对生成密钥对修正事项2:使用TortoiseGit生成密钥对(方法1)生成密钥对修正事项2:使用TortoiseGit生成密钥对(方法2)将新密钥导入GitHub中  笔者今天在将本Git项目推送到GitHub时,GitHub却一直报如下错误:笔者报错时的运行环境:Git2.29.2.windows.2TortoiseGitRelease2.11.0git.exepush--progress

php - 将用户密码从加盐 SHA1 升级到 bcrypt

我受雇在新的PHP5.3服务器上使用Laravel4重建基于CodeIgniter1.7.3(在PHP4.2服务器上)构建的活跃应用程序。该系统有大约500名用户,他们的密码使用加盐SHA-1哈希加密。我想使用bcrypt来提高应用程序的安全性以及与Laravel4的身份验证系统集成。您建议如何迁移这些用户密码? 最佳答案 散列的全部意义在于您无法恢复原始密码。你有三个选择:存储SHA1散列的bcrypt散列,然后在每次登录时对密码进行bcrypt之前对每个密码进行SHA1散列。这可能不是一个好主意。在用户下次登录时升级每个散列。(