免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 4019 | 回复: 31
打印 上一主题 下一主题

新手請教一個php的問題 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-07-11 12:46 |只看该作者 |倒序浏览
各位好,
小弟想請教一個問題,一個簡單的用戶登入問題,
所有用戶的密碼在mysql內都已經加密了, 但在我的php內,應用什麼方法或function才可以把密碼作對比呢?
例如:

  1. +-------+----------------+
  2. | name |  password   |
  3. +-------+----------------+
  4. | peter |*6691484EA|
  5. +-------+----------------+
复制代码


密碼是"abc123",用什麼方法才可以把正確的密碼抽出來到php內呢?
謝謝.

论坛徽章:
0
2 [报告]
发表于 2005-07-11 13:37 |只看该作者

新手請教一個php的問題

对用户输入的密码再进行加密,然后和数据库中的密码做比较

论坛徽章:
0
3 [报告]
发表于 2005-07-11 14:09 |只看该作者

新手請教一個php的問題

[quote]原帖由 "Unicorn_angel"]对用户输入的密码再进行加密,然后和数据库中的密码做比较[/quote 发表:


謝謝你的指教. 但不知能否給出一個簡單例子呢?
而我想問mysql的加密法是什麼呢? 是md5嗎?
再請指教. thx

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
4 [报告]
发表于 2005-07-11 15:00 |只看该作者

新手請教一個php的問題

mysql游子记得加密方法

SELECT * from `user` where `password`=password('密码明文')

论坛徽章:
0
5 [报告]
发表于 2005-07-11 15:39 |只看该作者

新手請教一個php的問題

一般是密码md5加密后存入数据库。

比较的时候

md5($userInput)==($password)

论坛徽章:
0
6 [报告]
发表于 2005-07-11 16:43 |只看该作者

新手請教一個php的問題

原帖由 "imbiss" 发表:
一般是密码md5加密后存入数据库。

比较的时候

md5($userInput)==($password)


謝謝imbiss,
我試了, 密碼原為"abc123",
但我在php內使用md5($loginpass)時, 答案為"e99a18c428cb38d5f260853678922e03", 但我在mysql內的密碼加密後是"*6691484EA", 這二個並不能作比較,因為一定是錯的.請問我應該如何更正呢? 謝謝.

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
7 [报告]
发表于 2005-07-11 18:03 |只看该作者

新手請教一個php的問題

mysql有自己的用户密码加密方法

SELECT * from `user` where `password`=password('密码明文')

论坛徽章:
0
8 [报告]
发表于 2005-07-11 23:04 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
9 [报告]
发表于 2005-07-11 23:37 |只看该作者

新手請教一個php的問題

http://w.yi.org/ftp/FAPM/mysql/zh/manual_Reference.html#Miscellaneous_functions


PASSWORD(str)
从纯文本口令str计算一个口令字符串。该函数被用于为了在user授权表的Password列中存储口令而加密MySQL口令。
mysql>; select PASSWORD('badpwd');
        ->; '7f84554057dd964b'

PASSWORD()加密是非可逆的。PASSWORD()不以与Unix口令加密的相同的方法执行口令加密。你不应该假定如果你的Unix 口令和你的MySQL口令是一样的,PASSWORD()将导致与在Unix口令文件存储的相同的加密值。见ENCRYPT()。

ENCRYPT(str[,salt])
使用Unix crypt()系统调用加密str。salt参数应该是一个有2个字符的字符串。(MySQL 3.22.16中,salt可以长于2个字符。)
mysql>; select ENCRYPT("hello";
        ->; 'VxuFAJXVARROc'

如果crypt()在你的系统上不可用,ENCRYPT()总是返回NULL。ENCRYPT()只保留str起始8个字符而忽略所有其他,至少在某些系统上是这样。这将由底层的crypt()系统调用的行为决定。

ENCODE(str,pass_str)
使用pass_str作为口令加密str。为了解密结果,使用DECODE()。结果是一个二进制字符串,如果你想要在列中保存它,使用一个BLOB列类型。
DECODE(crypt_str,pass_str)
使用pass_str作为口令解密加密的字符串crypt_str。crypt_str应该是一个由ENCODE()返回的字符串。
MD5(string)
对字符串计算MD5校验和。值作为一个32长的十六进制数字被返回可以,例如用作哈希(hash)键。
mysql>; select MD5("testing"
        ->; 'ae2b1fca515949e5d54fb22b8ed95575'

这是一个“RSA数据安全公司的MD5消息摘要算法”。

论坛徽章:
0
10 [报告]
发表于 2005-07-12 00:29 |只看该作者

新手請教一個php的問題

原帖由 "惠繪洋" 发表:


謝謝imbiss,
我試了, 密碼原為"abc123",
但我在php內使用md5($loginpass)時, 答案為"e99a18c428cb38d5f260853678922e03", 但我在mysql內的密碼加密後是"*6691484EA", 這二個並不能作比較,因為一定是錯的.請問我..........

法子还是很多的, 但最好不去使用mysql的user表
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP