我使用 tomcat 8.0.17 为我的应用程序使用摘要式身份验证,当我生成 md5 密码时出现奇怪的行为:
我正在运行下一个命令: 摘要-a md5 restful:MyDigestRealm:restful 并得到下一个输出: restful:MyDigestRealm:restful:d1df53aca583cfe9a81b6b0d950dea45b55f35d404d0772de5af45773906002f$1$b2cdc5297fb7f1ea089b704cc4a0d828
当我下次尝试运行相同的命令时,我得到了不同的 md5 例如: Restful :MyDigestRealm: Restful :aee2438ec0d38ed70d5717b4348c5e55b568757f09ab5eeec69571c5833e2d59$1$de3055edb6f1cc2195e3bba976d00305
环境:win 8,java 8,tomcat 8.0.17
但在另一台配置为 win 7、java 7、tomcat 7.0.47 的笔记本电脑上 当我多次运行相同的命令时( digest -a md5 restful:MyDigestRealm:restful )我一直得到一个输出: Restful :MyDigestRealm: Restful :26faed3eaa76b18ec9810155057863b8
还有一个:当我将使用 tomcat 7.0.47 生成的 md5 密码插入笔记本电脑上的数据库时,使用 tomcat 8.0.17 摘要身份验证效果很好。 当我使用来自 tomcat 8.0.17 的密码时,它不起作用。
谁能帮我解决这个问题?
最佳答案
您需要指定盐长度和编码。试试这个:
digest -a md5 -s 0 -e utf-8 restful:MyDigestRealm:restful
为了在同一台机器上获得一致的结果,需要加盐长度。需要编码才能在不同机器上获得一致的结果。
关于java - Tomcat 8.017生成md5带digest.bat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28882607/