php中的屏蔽密码
嗨,有一个xml,我在其中分配第三方获得的密码值。我想戴上面具。我想隐藏那个密码。代码是用php编写的。可以在php中屏蔽密码吗 如果需要传递密码,您可以使用php中的屏蔽密码,php,mysql,masking,password-encryption,Php,Mysql,Masking,Password Encryption,嗨,有一个xml,我在其中分配第三方获得的密码值。我想戴上面具。我想隐藏那个密码。代码是用php编写的。可以在php中屏蔽密码吗 如果需要传递密码,您可以使用md5()或sha1()对密码进行散列,您所能做的就是加密密码 如果你只需要检查密码,你应该看看散列。请参阅:尝试以下操作: echo md5("password"); define('SALT', 'atopsecretphrase'); function encrypt($text) { return trim(bas
md5()
或sha1()
对密码进行散列,您所能做的就是加密密码
如果你只需要检查密码,你应该看看散列。请参阅:尝试以下操作:
echo md5("password");
define('SALT', 'atopsecretphrase');
function encrypt($text)
{
return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, SALT, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
}
function decrypt($text)
{
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, SALT, base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
}
$encryptedmessage = encrypt("mypassword");
echo decrypt($encryptedmessage);
将返回:
5f4dcc3b5aa765d61d8327deb882cf99
您可以使用以下方法加密密码:
echo md5("password");
define('SALT', 'atopsecretphrase');
function encrypt($text)
{
return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, SALT, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
}
function decrypt($text)
{
return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, SALT, base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
}
$encryptedmessage = encrypt("mypassword");
echo decrypt($encryptedmessage);
你可以把它散列保存。例如,
sha1($password)
将为同一密码返回相同的哈希值,但无法解密
这样,密码是安全的,您可以随时获取用户的输入,以相同的方式对其进行散列,并将其输入的密码与XML文件中的密码进行比较
否则,另一个解决方案是编写自己的加密/解密算法,而不是散列。掩蔽它是什么意思?你是说在HMTL输出中屏蔽它,在数据库中屏蔽它?哪里?如果你对密码进行哈希运算,请记住对它们进行加密。我只是简单地解释了加密和散列的原理和区别。然后,如果你想获得技术,两者都需要一个salt、多轮编码和其他可能使算法更弱的问题。例如,某些加密不会叠加,而是削弱了秘密。但无论如何。。。谢谢你非常中肯的回答,你应该关注OP的问题,而不是我(实际上相当不错)的混淆知识。此外,sha1对于密码哈希不再被认为是安全的。@Mex:这就是一个例子。我在评论中写了“例如”。这可能只是一个例子,但你可能不应该通过这个例子让人们养成坏习惯。md5和sha1都不应该用来散列密码。我见过的最好的选择是phpass框架,我想密码可以解密是不安全的。这就是为什么你应该散列密码。是的,这只是用户想要解密的一个选项。当然,可以使用MD5/SHA1或其他加密方法进行完全加密。MD5不再被视为安全的哈希函数。例如,请参见感谢您的反馈。我仍然在使用它,因为得到两个相同的哈希值的机会非常小。我认为Mex指的是这个算法以前被麻省理工学院的学生破坏过的事实。事实上,这是一种旧的哈希算法,这一事实也让它变得更弱,因为将哈希算法暴露于现实世界的时间越长,超级计算机对其整个名称空间组合进行哈希运算并构建关联键=值数据库的时间就越长。一旦你有了所有的可能性,你就可以利用碰撞。。。你的一天都完了。盐到底是什么意思?它的用途是什么?