我正在尝试创建一个SQL过程,对密码输入进行散列。这段代码将无法运行,并且我没有得到任何有用的响应错误。
第一部分创建表,第二部分创建过程。当我在第三部分调用我的过程时,它将值发送到过程中。在那里,密码应该使用SHA2_512进行散列,并插入到我们做了eRalier的表中。
我用网上的研究做了这段代码,我没有得到的部分是:
我的值之前的N
SetNoCount
@ResponseMessage
-- makes Admin table
CREATE TABLE IF NOT EXISTS `AdminUser` (
`AdminID` smallint(6) NOT NULL AUTO_INCREMENT,
`Username` char(15) NOT NULL,
`PasswordHash` BINARY(64) NOT NULL,
`Fornavn` char(30) NOT NULL,
`Etternavn` char(40) NOT NULL,
`Email` char(40) NOT NULL,
PRIMARY KEY (`AdminID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Makes hashing procedure
CREATE OR REPLACE PROCEDURE vm_ski.addAdmin
@pUsername NVARCHAR(50),
@pPassword NVARCHAR(50),
@pFornavn NVARCHAR(30),
@pEtternavn NVARCHAR(40),
@pEmail NVARCHAR(40),
@responseMessage NVARCHAR(250)='' OUTPUT
AS
BEGIN
SET NOCOUNT ON
BEGIN TRY
INSERT INTO vm_ski.AdminUser (Username, PasswordHash, Fornavn, Etternavn, Email)
VALUES(@pUsername, HASHBYTES('SHA2_512', @pPassword), @pFornavn, @pEtternavn, @pEmail)
SET @responseMessage='Success'
END TRY
BEGIN CATCH
SET @responseMessage=ERROR_MESSAGE()
END CATCH
END;
-- Admin example
DECLARE @responseMessage NVARCHAR(250)
EXECUTE vm_ski.addAdmin
@pUsername = N'sondre',
@pPassword = N'example'
@pFornavn = N'Sondre'
@pEtternavn = N'Morgendal'
@pEmail = N'sondre.example@gmail.com'
;
这不是对问题的直接回答;这是关于问题方法的安全说明
不要在MySQL中哈希密码。提供给MySQL的数据是明文的,在转储到数据库中之前(例如,如果发送到数据库的消息包是非localhost
并且是非TLS),很容易被MySQL处理日志以及可能的许多其他地方截获。(为什么?)
当对密码进行哈希时,您希望在过程中尽可能早地进行哈希。这通常意味着使用PHPpassword_hash
并只在MySQL中转储散列数据。
如果不使用PHP与SQL交互,那么可以使用其他服务器方法,如Argon2或libs钠。
另外,您应该使用MB4
UTF-8字符集和排序规则-原则UTF8MB4_General_CI
(为什么?)
问题内容: 我正在使用Django REST Framework(DRF)创建一个可以注册新用户的终结点。但是,当我通过POST到达创建端点时,新用户将通过序列化器保存,但密码以明文形式保存在数据库中。我的序列化器的代码如下: 请注意,我使用的是Django auth包中的默认用户模型,并且对使用DRF来说是一个新手! 问题答案: 问题是DRF只需将字段值设置到模型上即可。因此,密码在“密码”字段
经过一些故障排除,我确定当我使用PHP的password_hash函数散列密码时,加密标识符是$2y$。但是,当我使用password_verify函数将存储的散列密码与用户输入密码进行比较时,password_verify不会返回true。如果我使用https://www.bcrypt-generator.com/上的$2a$标识符生成一个新密码,并用它替换存储的散列密码,它将返回true。 我
我为我的密码学初学者水平道歉 在我的项目中,我发现在将密码插入数据库之前需要对密码进行散列,因此我搜索了顶级散列算法,发现了PBKFD2和salt方法。 我这样做的方法是生成随机64char Salt并使用它来散列密码。然后将哈希密码和salt存储在我的数据库中。(注:注册时也会生成密码。这不是我的选择) 登录时,我的Servlet获取密码,然后用数据库中存储的salt散列它。但是我得到了不同的结
下午好我自己在一个安全项目中工作。我在PHP中检查登录代码时遇到问题。我不知道为什么,但当我尝试与我创建的“数据库中的密码为纯文本”的用户登录时,它会说密码不正确。 其思想不是将密码转换为散列。我知道这是一个很大的安全风险,但显然我不会将其用于专业用途。我的目的是做安全测试。 check.php: 编辑我已经纠正了错误,但我仍然有问题的日志,出现一个menssage:"姓名或密码不正确!".在我的
我一直在阅读OWASP10,我遇到了存储信息的最佳实践。咸杂碎。在这里,您为每个密码生成一个随机的salt,并对其进行梳理、散列和存储。我的疑问是,如果salt是随机生成的,当用户键入密码时,如何对密码进行身份验证?salt是否与用户名一起保存?如果是这样,这种做法仍然是脆弱的。或者他们是怎么做到的?
我正在尝试将用户从旧的Drupal6 CMS迁移到KeyCloak。我想迁移用户与他们的旧密码,然后分配一个“更新密码”要求的行动到他们的个人资料。 然而,迁移密码似乎有问题,因为我只能以散列形式访问它们。 null 有没有人有幸让这个功能发挥作用?