Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的屏蔽密码_Php_Mysql_Masking_Password Encryption - Fatal编程技术网

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

嗨,有一个xml,我在其中分配第三方获得的密码值。我想戴上面具。我想隐藏那个密码。代码是用php编写的。可以在php中屏蔽密码吗

如果需要传递密码,您可以使用
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指的是这个算法以前被麻省理工学院的学生破坏过的事实。事实上,这是一种旧的哈希算法,这一事实也让它变得更弱,因为将哈希算法暴露于现实世界的时间越长,超级计算机对其整个名称空间组合进行哈希运算并构建关联键=值数据库的时间就越长。一旦你有了所有的可能性,你就可以利用碰撞。。。你的一天都完了。盐到底是什么意思?它的用途是什么?