gpt4 book ai didi

php - 如何为提供的密码和盐复制密码哈希 (PHP/MySQL)

转载 作者:行者123 更新时间:2023-11-30 23:35:13 24 4
gpt4 key购买 nike

密码需要通过最初在.NET平台上创建并存储在MSSQL上的密码哈希进行匹配(因此加密可能是SHA1)。

这是 MySQL 表的样子:

CREATE TABLE IF NOT EXISTS `test` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`UserName` varchar(100) COLLATE latin1_general_ci DEFAULT NULL,
`PasswordHash` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`PasswordSalt` int(10) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=12535 ;

--
-- Dumping data for table `test`
--

INSERT INTO `test` (`id`, `UserName`, `PasswordHash`, `PasswordSalt`) VALUES(9836, 'demoadmin', '?z1??9t|????e&??9aK', -1190254076);
INSERT INTO `test` (`id`, `UserName`, `PasswordHash`, `PasswordSalt`) VALUES(12534, 'sunny', '??o\\(R?8~??6>?t????o', 549612932);

我找到了两个非常接近我需要完成的示例,但我能够让它发挥作用。

示例 1:http://gilbert.pellegrom.me/replicating-net-password-hashing-in-php/

示例 2:http://www.kevinbruce.com/Blog?area_id=6&blog_id=3&ba_id=27

用户名和密码是:

第一个用户:demoadmin/demotest第二个用户:sunny/eclyptix

请帮忙!

最佳答案

看起来你有一个编码问题:

'?z1??9t|????e&??9aK'

您的原始代码似乎已损坏,正在将可打印 ASCII 范围之外的字符转换为问号。

可以尝试在 PHP 中复制此行为。然而,继续使用这个损坏的方案会危及系统的安全性,因为很可能会发现哈希冲突。可能有必要让所有用户更改他们的密码。这次确保哈希存储正确。您可能还想考虑将它们存储为十六进制字符串而不是二进制数据,以最大限度地降低进一步编码问题的风险。

关于php - 如何为提供的密码和盐复制密码哈希 (PHP/MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8022866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com