phper 配置一个 cas 怎么就这么不顺利。

2016-04-17 15:35:39 +08:00
 chaegumi
好不容易配置到数据库验证明文验证成功了,现在做到加密验证,我本来的 php 注册进来的加密算法是 password_hash('password', PASSWORD_BCRYPT)

php 文档中是这样说的:
总而言之,开发者如果仅针对 PHP 5.3.7 及之后版本进行开发,那应该使用 “$2y$” 而非 “$2a$”。

我现在要配置 java 的 cas ,这边的我找到的 java 算法,生成的是$2a$开头的, php 跟 java 得出来的结果对不上

这个怎么搞。愁死了。

不知道怎么对接。有有经验的人没,指点下。

或者我要去改下 php 端,密码入库的加密方式,然后去适应 cas 的。
2485 次点击
所在节点    程序员
7 条回复
ershisi
2016-04-17 17:32:51 +08:00
我的 脑残办法,库里存两种密文。这样就没那么纠结了
lianyue
2016-04-17 17:38:23 +08:00
php 的

手动 $2a
crypt($password, '$2a$10$'. uniqid(mt_rand(), true) .'$');
10 = 计算耗时 越大耗时越久
后面是随机数



crypt($password, '$2y$10$'. uniqid(mt_rand(), true) .'$');
和 password_hash 结果相同

http://php.net/manual/en/function.crypt.php
maxsec
2016-04-17 21:34:20 +08:00
用 hash_mac 吧
chaegumi
2016-04-18 09:36:30 +08:00
@lianyue 你这边的$password 一定要保证全部是 ASCII 字符,才不会出错吧。 http://php.net/security/crypt_blowfish.php
chaegumi
2016-04-18 09:38:20 +08:00
@chaegumi 常见的密码格式要求:数字大小写字母英文标点符号,是符合条件的吗?
chaegumi
2016-04-19 16:09:59 +08:00
@lianyue
@ershisi

我仿造 cas 计划中版本的功能,实现了不修改 php 代码,修改 cas 里边的密码验证。成功了。
lianyue
2016-04-19 16:28:02 +08:00
@chaegumi 那个是只在 5.3.7 才存在的 bug 吧 😂 谁 密码用非 ascii 字符 如果能改 java 推荐改 java $2y 比$2a 好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/271751

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX