如何在PHP中保护更多我的md5密码编码

我正在寻求一些建议来保护我的密码编码。 在这里我想提一下,我不想使用新的password_hash()api,也不想迁移旧密码,如果我使用了password_hash()api,我必须迁移我的旧用户密码,这不是锣到 可能现在。 所以这是我的老方法。 </ p>

  function login(){
//从数据库获取密码的代码.......我正在跳过这部分.....
if( !检查($ given_pass,$ expected_pa​​ss)))
//用户在会话中输入密码为given_pass,expected_pa​​ss是存储在数据库中的md5生成的哈希密码。
返回错误('传递错误');
return notice ('传递成功');
}

功能编码($ text){
return md5(paramtr2Str(“conf.cryptographykey”)。$ text);

//加密密钥是服务器端随机生成的字符串。
}

function检查($ given_pass,$ expected_pa​​ss){
return $ expected == Encode($ given_pass);
}
</ code> </ pre>

我认为我的编码功能是可以破解的,我想通过坚持原始格式来给它一些额外的安全性。 </ p>
</ div>

展开原文

原文

I am seeking some suggestion to secure my password encoding. Here I wanted to mention that I don't want to use new password_hash() api and also dont want to migration of old password, If I used password_hash() api , I have to migrate my old user password, which is not gong to possible for now. SO here is my old approach.

function login() {
//the code of getting password from database.......I am skipping this part.....
if(!Check($given_pass,$expected_pass)))  
    //User enter a password in the session as given_pass and expected_pass is the md5 generated hash password stored in database.
    return error('pass error');
return notice('pass success');
}

function Encode($text) {
    return md5(paramtr2Str("conf.cryptographykey").$text);  
    //cryptography key is a random generated string at the server side.
}

function Check($given_pass, $expected_pass) {
    return $expected == Encode($given_pass);
}

I think my Encode function is hackable and I want to give it some extra security by sticking with the original formatting.

ds3422222222
ds3422222222 我的服务器版本是PHP5.5..我不想使用password_hash()因为现在我不想强迫用户重置他们的密码..他们是否通过不强制他们重置密码来更新旧的md5密码?
大约 6 年之前 回复
dpwdldgn43486
dpwdldgn43486 如果你不能使用password_hash(),因为你运行的PHP版本太早,甚至不能使用userland兼容版本,那么你真的应该升级PHP,因为你运行的是不再支持的版本
大约 6 年之前 回复
dongshadu4498
dongshadu4498 如果您无法将系统更改为使用password_hash(),因为您无法重置现有用户密码,那么无论如何您都无法更改任何内容....解决方法是强制他们通过重置密码屏幕下次他们登录时,使用password_hash()和他们的新密码
大约 6 年之前 回复
douxiao0400
douxiao0400 sha1应用于当前哈希密码怎么样?那么你需要使用sha1(md5(...))来获取保存的哈希值。
大约 6 年之前 回复
dongtie0929
dongtie0929 我知道password_hash()更安全..但由于一些限制我现在无法迁移系统..可能稍后我会迁移..但是现在我需要一个时间解决方案..
大约 6 年之前 回复
dqrzot2791
dqrzot2791 256位或什么都没有!那么当量子计算真正开始时,我们都会被剔除,但在此期间选择生命。选择256位+
大约 6 年之前 回复
dooso0594
dooso0594 保护md5的最佳方法,使用md5并开始使用password_hash(),即使你不想......询问人们如何保证系统,同时告诉他们你不会接受最好的建议isn'寻求帮助的一种特别明智的方法
大约 6 年之前 回复
dq62957
dq62957 “hackable”是什么意思?我们要清楚MD5不具有加密安全性。如果您想要一个安全的系统,先决条件是不使用MD5。
大约 6 年之前 回复
duan198123
duan198123 IDK很多,但我知道md5可以'欺骗'。对于初学者,您可能希望升级您的哈希算法
大约 6 年之前 回复

1个回答



您可以使用 sha1()</ code>加密MD5加密密码。 您必须在数据库中再次使用 sha1()</ code>加密所有用户密码(MD5加密),并在登录页面中使用此 sha1(md5($ password))检查其密码</ code >并将其与您的数据库进行比较。</ p>

这将大大提高您的网站安全性,但我建议您使用 password_hash()。</ p>
</ div>

展开原文

原文

You can encrypt the MD5 encrypted password with sha1(). You have to encrypt all users passwords (MD5 encrypted) with sha1() again in your database and in the login page check their password with this sha1(md5($password)) and compare it with you database.

This will improve your site security quite lot but I'd recommend you to use password_hash() anyway.

doucaishou0074
doucaishou0074 一切都是对的。 这是您帖子的定义。 这是错误的定义吗? 例如我的托管计划的PHP 5.4.31。 我可以使用password_hash()吗?
大约 6 年之前 回复
douke7431
douke7431 这有什么问题?
大约 6 年之前 回复
doushan9415
doushan9415 password_hash()用于PHP> = 5.5.0
大约 6 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐