本帖最后由 孩紫MC 于 2015-6-11 12:08 编辑
或许大家都知道 authme支持各种加密方式 于是乎我就开发了一套注册系统
由于时间原因 近几天丢到自己的服务器去测试 结果发现了个很诡异的问题
情况是这样的 按正常来说 当在web上修改了游戏密码 authme应该会自动识别帐号所对应的密码
但是我却奇葩的发现 密码是更改了(密码在游戏跟网页是通用的 但是现在出现了 网页能登陆!游戏不能登陆?) 这是什么情况 结果询问了X服的腐竹并让其帮忙测试 嗯 的确也是有这个奇葩的问题
嗯 当然这里嘛 authme是使用mysql的 而web也同样使用了mysql 好了 接下来我应该贴个图
这是在服务器记录的一段东西 就是authme中保存的玩家帐号密码 下面来看看修改密码过后的情况
现在问题就来了 当我修改密码后 就出现这样的情况 然而我们来对比下密码吧
通过某网站的帮助下 得出了以下结果

好了 至此问题就显然而见了 在改完密码的时候 密码不能立即对游戏生效 而当reload完(服务器重启)就生效了 这说明authme的机制应该是有问题了(或者是缓存机制?)(如果有的说法请说出来 我不介意的
)

由于时间原因 近几天丢到自己的服务器去测试 结果发现了个很诡异的问题

但是我却奇葩的发现 密码是更改了(密码在游戏跟网页是通用的 但是现在出现了 网页能登陆!游戏不能登陆?) 这是什么情况 结果询问了X服的腐竹并让其帮忙测试 嗯 的确也是有这个奇葩的问题



通过某网站的帮助下 得出了以下结果

好了 至此问题就显然而见了 在改完密码的时候 密码不能立即对游戏生效 而当reload完(服务器重启)就生效了 这说明authme的机制应该是有问题了(或者是缓存机制?)(如果有的说法请说出来 我不介意的

看图片发现你网页端的加密方法是MD5.
然而Authme的加密算法不是MD5而是SHA-256
Java的实现代码例子:
复制代码
然而Authme的加密算法不是MD5而是SHA-256
Java的实现代码例子:
- public static String Encrypt(String strSrc, String encName) {
- MessageDigest md = null;
- String strDes = null;
- byte[] bt = strSrc.getBytes();
- try {
- if (encName == null || encName.equals("")) {
- encName = "SHA-256";
- }
- md = MessageDigest.getInstance(encName);
- md.update(bt);
- strDes = bytes2Hex(md.digest());
- } catch (NoSuchAlgorithmException e) {
- return null;
- }
- return strDes;
- }
jiongjionger 发表于 2015-6-11 18:21
看图片发现你网页端的加密方法是MD5.
然而Authme的加密算法不是MD5而是SHA-256
Java的实现代码例子:

配置文件中cache关闭
尘曲 发表于 2015-6-13 21:53
配置文件中cache关闭
{:10_514:}嗯 的确是 在问题提出之后就解决了 就是不知道为什么cache会造成这样的情况发生
Authme有查询缓存
这个问题可以通过关闭缓存功能来解决
这个问题可以通过关闭缓存功能来解决
通过authme改密会更新缓存_(:_」∠)_然而如果直接修改数据库就会导致这个问题(不过话说这个不缓存也没啥性能损耗啊…)