• 请不要在回答技术问题时复制粘贴 AI 生成的内容
chaegumi
V2EX  ›  程序员

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

  •  
  •   chaegumi ·
    chaegumi · Apr 17, 2016 · 2982 views
    This topic created in 3702 days ago, the information mentioned may be changed or developed.
    好不容易配置到数据库验证明文验证成功了,现在做到加密验证,我本来的 php 注册进来的加密算法是 password_hash('password', PASSWORD_BCRYPT)

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

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

    这个怎么搞。愁死了。

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

    或者我要去改下 php 端,密码入库的加密方式,然后去适应 cas 的。
    7 replies    2016-04-19 16:28:02 +08:00
    ershisi
        1
    ershisi  
       Apr 17, 2016   ❤️ 1
    我的 脑残办法,库里存两种密文。这样就没那么纠结了
    lianyue
        2
    lianyue  
       Apr 17, 2016   ❤️ 2
    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
        3
    maxsec  
       Apr 17, 2016
    用 hash_mac 吧
    chaegumi
        4
    chaegumi  
    OP
       Apr 18, 2016
    @lianyue 你这边的$password 一定要保证全部是 ASCII 字符,才不会出错吧。 http://php.net/security/crypt_blowfish.php
    chaegumi
        5
    chaegumi  
    OP
       Apr 18, 2016
    @chaegumi 常见的密码格式要求:数字大小写字母英文标点符号,是符合条件的吗?
    chaegumi
        6
    chaegumi  
    OP
       Apr 19, 2016
    @lianyue
    @ershisi

    我仿造 cas 计划中版本的功能,实现了不修改 php 代码,修改 cas 里边的密码验证。成功了。
    lianyue
        7
    lianyue  
       Apr 19, 2016 via iPhone
    @chaegumi 那个是只在 5.3.7 才存在的 bug 吧 😂 谁 密码用非 ascii 字符 如果能改 java 推荐改 java $2y 比$2a 好
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2573 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 10:59 · PVG 18:59 · LAX 03:59 · JFK 06:59
    ♥ Do have faith in what you're doing.