php中MySQL进去的密码多少,关于mysql:在PHP中显示加密密码

博客讨论了网站会员密码的安全存储和管理问题。当前方案使用SHA1加密,但需要在管理面板中显示密码。文章指出,不应以纯文本显示密码,推荐使用可逆加密并提及了PHP的mcrypt_encrypt()和mcrypt_decrypt()函数作为示例。同时强调了用户密码安全的重要性,建议避免客户查看密码并寻求替代解决方案。
摘要由CSDN通过智能技术生成

我正在建立一个网站的客户在其"仅限会员"部分使用密码/促销代码,使会员可以访问特殊内容。 我正在通过MySQL存储上述密码,并使用sha1进行了加密。

客户端需要在管理员控制面板中以纯文本格式查看这些密码。 显然,这不是使用sha1的选项。

与存储纯文本相比,在加密数据库中的密码时有何取舍? 我是否应该将它们简单地以纯文本格式存储在数据库中,然后在发布后加盐?

能够显示纯文本密码并保持适当安全级别的最佳方法是什么?

stackoverflow.com/questions/2283937/

您可以使用加密算法(而不是像sha1这样的哈希函数),它们是可逆的

我喜欢@DamienPirsy这个主意,尽管我对(自定义?)算法知之甚少。 我所说的"密码"将同时由多个成员使用,并通过邮件列表等发送出去。

不显示密码。只需为客户端提供以其他用户身份登录的功能(我想这就是他们需要密码的原因?),也许是在本身受仅客户端已知密码保护的页面上。

+1找出客户为什么要这么做,并为他们提供另一种做他们想做的事情的方法。他们不需要查看用户密码-也不应允许他们输入密码,因为这可能导致隐私权泄露到其他地方的客户帐户中。

客户创建促销代码,然后立即通过电子邮件发送给许多成员。该代码(密码)用于网站上以访问特殊内容。该密码必须通过管理控制面板可见,以供客户参考。

@mrtwidget我想您正在谈论完全独立于用户名/密码登录的内容。哇,那肯定需要更清楚一点,因为那根本不是密码。实际上,为什么要麻烦加密呢?

您应该向您的客户解释为什么他们必须无权访问密码。太多事情可能出错。流氓用户,被盗的数据库,错过了SQL注入攻击,认为这样做不值得冒险。

会员密码仅允许访问会员内容。没有敏感信息传递给常规成员。

不要这样查找替代路线。

如果您的客户出于任何原因想要查看其用户密码,请询问他们为什么要查看这些密码,以及如果他们拥有这些密码,他们会怎么做-然后为他们提供一种替代的直接方式,那就是涉及到必须知道用户密码是什么。

无论您的客户使用多么无辜,大多数人都在各处重复使用他们的密码。您的客户可能会认为他们仅知道自己系统的用户密码,但这意味着他们现在可能已经知道所有内容的用户密码-电子邮件,金融服务(例如网上银行)等。

它只需要一名恶意员工,并且用户的帐户就会在Internet上的其他地方遭到破坏。除了某人的隐私遭到侵犯之外,这可能完全是法律上的泥潭。

寻找替代品。永远不要以纯文本形式显示用户密码。

完全同意这个答案。另外,您应该更改为慢速密钥派生功能,例如BCrypt,SHA- *系列的算法对于散列密码而言太快了。

您可以使用两种方式加密来存储和显示密码。 mcrypt_encrypt()和mcrypt_decrypt。看看这个问题使用PHP的最简单的双向加密

可以做到的。

# --- ENCRYPTION ---

# the key should be random binary, use scrypt, bcrypt or PBKDF2 to    # convert a string into a key    # key is specified using hexadecimal    $key = pack('H*',"bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3");

# show key size use either 16, 24 or 32 byte keys for AES-128, 192    # and 256 respectively    $key_size =  strlen($key);

echo"Key size:" . $key_size ."

";

$plaintext ="This string was AES-256 / CBC / ZeroBytePadding encrypted.";

# create a random IV to use with CBC encoding    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);

$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

# use an explicit encoding for the plain text    $plaintext_utf8 = utf8_encode($plaintext);

# creates a cipher text compatible with AES (Rijndael block size = 128)    # to keep the text confidential    # only suitable for encoded input that never ends with value 00h    # (because of default zero padding)    $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,

$plaintext_utf8, MCRYPT_MODE_CBC, $iv);

# prepend the IV for it to be available for decryption    $ciphertext = $iv . $ciphertext;

# encode the resulting cipher text so it can be represented by a string    $ciphertext_base64 = base64_encode($ciphertext);

echo  $ciphertext_base64 ."

";

# === WARNING ===

# Resulting cipher text has no integrity or authenticity added    # and is not protected against padding oracle attacks.

# --- DECRYPTION ---

$ciphertext_dec = base64_decode($ciphertext_base64);

# retrieves the IV, iv_size should be created using mcrypt_get_iv_size()    $iv_dec = substr($ciphertext_dec, 0, $iv_size);

# retrieves the cipher text (everything except the $iv_size in the front)    $ciphertext_dec = substr($ciphertext_dec, $iv_size);

# may remove 00h valued characters from end of plain text    $plaintext_utf8_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,

$ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);

echo  $plaintext_utf8_dec ."

";

?>

资料来源:http://www.php.net/manual/en/function.mcrypt-encrypt.php

它是使用SHA1存储的,因此由于SHA1是单向哈希,因此无法以明文形式检索。您不能将其转换为原始格式。

http://php.net/manual/en/function.sha1.php

因此,您既可以使用md5格式,也可以将它们简单地存储为纯文本格式,然后在发布后添加盐

md5也是单向的

基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip 个人大四的毕业设计、课程设计、作业、经导师指导并认可通过的高分设计项目,评审平均分达96.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 [资源说明] 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设或者课设、作业,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96.5分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),供学习参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值