找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

通达OA官网网站
搜索
12
返回列表 发新帖
楼主: gxutlihui

通达2016平台版70%的源码几时可以开放?

[复制链接]

5

主题

20

回帖

84

牛毛

游客

积分
109
发表于 2017-2-10 15:23:50 | 显示全部楼层
dowhile 发表于 2017-2-10 14:54
如果:crypt(原始口令,数据库里的字符串)=数据库里的字符串
那么:说明原始口令是正确的
crypt('123456','1$ ...

这样不对的~默认的 crypt函数如果不加salt,每次都是随机不一样的

按照你的说法, 数据库密码= crypt(用户密码,加密后的字符串);这里的加密后的字符串是什么字符串,是怎么加密的,现在最最关键的是我需要这个加密后的字符串。也就是 salt 不知道。





28

主题

57

回帖

272

牛毛

游客

积分
357
发表于 2017-2-10 17:19:04 | 显示全部楼层
本帖最后由 dowhile 于 2017-2-11 09:46 编辑
chk 发表于 2017-2-10 15:23
这样不对的~默认的 crypt函数如果不加salt,每次都是随机不一样的

按照你的说法, 数据库密码= crypt(用 ...

哥们,你就试调用一下嘛.我们用都应用了很多年了.

当盐值本身就是md5结果时,crypt()就返回一模一样的值来告诉你:这个结果确实是md5加密的结果之一
这么说你应该可以理解了吧.如果不是这么用,所有的php脚本都无法校验口令啦

加密后的字符串,就是user表的password这个字段的内容

5

主题

20

回帖

84

牛毛

游客

积分
109
发表于 2017-2-10 18:35:08 | 显示全部楼层
dowhile 发表于 2017-2-10 17:19
哥们,你就试调用一下嘛.我们用都应用了很多年了.

当盐值本身就是md5结果时,crypt()就返回一模一样的值来 ...


那php代码就是大概这样的

php获取的密码为 123456,交给一个变量 $pwd

$pwd='123456';    //用户密码

$salt=crypt($pwd);     //salt这个变量是盐值,crypt这个函数如果后面不给参数 salt 的时候每次生成的MD5都不一样的

echo crypt($pwd,$salt);  //这里最终得到的值和数据库的值不一样,原因在于上面的变量 $salt 的值每次都不一样,所有加密的结果也就不一样。

哭~~~

哥们你能把你那里应用密码验证这里代码贴下吗,非常感谢。




28

主题

57

回帖

272

牛毛

游客

积分
357
发表于 2017-2-11 09:45:54 | 显示全部楼层
本帖最后由 dowhile 于 2017-2-11 09:56 编辑
chk 发表于 2017-2-10 18:35
那php代码就是大概这样的

php获取的密码为 123456,交给一个变量 $pwd

思路已经很清晰了,你要真的还看不明白,就帮不上你了.要理解crypt()函数:不带第二参数时,生成密文;带第二个参数时,校验密文

根据用户编号,从数据库user表里读出password值,赋值给变量A
如果A=crypt(原始口令,A)
那么,口令通过


5

主题

20

回帖

84

牛毛

游客

积分
109
发表于 2017-2-11 10:21:47 | 显示全部楼层
dowhile 发表于 2017-2-11 09:45
思路已经很清晰了,你要真的还看不明白,就帮不上你了.要理解crypt()函数:不带第二参数时,生成密文;带第二个 ...

蟹蟹,知道了:P非常感谢。。。。。。



我贴出我写的PHP代码吧,以后的同学可以参考下.


  1. <?php
  2. $pwd=$_POST['pwd'];  //从前台获取明文密码
  3. $pwd='pwd1993';  //我这里设定一个明文密码
  4. //在数据库里面找到lisa的对应md5值字段
  5. $apwd='$1$9a1.cd..$cOITqcn76xz4TX3I.slmU1';  //数据库lisa用户的值
  6. $res=crypt($pwd,$apwd);  //最后通过$res来对比,如果一样直接用IF来判断就可以了
  7. if($res!==$apwd){
  8.         echo '登陆失败';
  9.         exit();
  10. }
  11. //然后下面就可以自由做事情啦!


  12. ?>
复制代码
再次感谢 dowhile 兄弟的思路


您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

咨询电话:400 818 0505 通达OA,国内协同管理软件行业内唯一的央企单位,中国协同OA软件的领跑者,优秀协同办公解决方案供应商

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|由NB5牛论坛提供技术支持NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-4-29 06:17 , Processed in 0.195584 second(s), 43 queries .

Powered by Discuz

Copyright © 2001-2025, 北京通达信科科技有限公司.

快速回复 返回顶部 返回列表