php - 使用未加密的密码通过数据库登录应用程序

标签 php mysql encryption titanium

相当简单,我的应用程序要求用户通过输入用户 ID 和密码来登录,该用户 ID 和密码通过在用户表中搜索精确匹配来针对 MySQL 数据库进行身份验证。目前,该表单接受 user_id(用户表的主键)和随机生成的 8 字符密码,该密码使用 PHP 的 crypt() 加密。我对这个过程只有几个问题。

首先,更多的是一个主观问题,我认为输入用户id不太好。也许应该使用用户的姓氏和名字首字母生成用户名(例如,John Smith 变为 smithj1)。想法?

其次,我不确定密码是否完全有必要加密。这些信息实际上并不是那么敏感,如果用户不必输入一长串字母数字字符,那就更好了。只生成一个短字符串(可能是 4-5 个大写字符)是否可行(类似于 Google 发送给您验证帐户的代码)?换句话说,它更像是密码而不是密码。

根据第二个问题,这一点可能没有实际意义,但由于密码是使用crypt()加密的,我不认为它可以被Titanium解密(我正在使用的构建应用程序)。如果我应该继续使用加密密码,我应该使用什么来加密它,以便 Titanium 可以根据数据库检查输入的密码?

最佳答案

PHP 的 crypt()将使用基于标准 Unix DES 的算法或系统上可用的替代算法返回散列字符串。

您可以使用 Appcelerator 的免费加密模块,可用 in their marketplace ,或者您可以搜索 a JavaScript library that supports DES decryption 。两者都可以解决您的问题。

关于php - 使用未加密的密码通过数据库登录应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21302312/

相关文章:

java - 用于安全计算欧几里德距离平方的 Paillier 密码系统和协议(protocol)

Android - Crittografy Cipher 解密不起作用

php - mysql_connect() 中的 localhost 与 127.0.0.1

php - 如何创建下拉菜单

c# - 已经有一个与此连接关联的打开的 DataReader 必须首先关闭?

php - Eloquent: Model::orberBy ('created_at' , 'desc' )->first() 和 Model::all()->last() 之间的区别?

php - 将SQLite与PHP代码连接

php - 根据 MySQL 数据库字段中的值设置背景颜色

php - 为什么我的 table 变成空的?

android - 阅读 whatsapp 消息