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也是单向的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值