BlueFunny

Results 40 comments of BlueFunny

加密算法可以是开源的,但是密钥不一定得是啊) 就类似于 E2E 加密这样,每个系统在第一次启动时自动生成一份加密密钥,然后对获取到的 `refreshToken` 进行加密存储,需要时在利用这个加密密钥进行解密 这样,源代码中只有加解密相关的内容,但除非我能得到这份加密密钥,不然我也没法子解密这个 `refreshToken`

> 那我觉得可以在使用 `refreshToken` 前先检验 `accessToken` 是否有效,如果失效了才进行刷新,所以我说如果加入这个功能就要把刷新机制调整下。 true,不过我还是建议先把 `refreshToken` 这种东西加密存储起来,不然仅仅只是 HMCL 这里做了一个判断,有心人还是可以从HMCL 的数据存储中找到 `refreshToken` 而且最好是加一个必须是官方构建这套加解密功能才能起效的东西,这种东西验证逻辑应该是比较简单的(指对 `accessToken` 验证是否有效的逻辑),否则如果有人已经被盗号,号主吊销了 `accessToken`,但是这个人利用一份修改版就可以变相绕开这个限制,直接解密得到 `refreshToken`

> > 加密算法可以是开源的,但是密钥不一定得是啊) > > 就类似于 E2E 加密这样,每个系统在第一次启动时自动生成一份加密密钥,然后对获取到的 `refreshToken` 进行加密存储,需要时在利用这个加密密钥进行解密 > > 这样,源代码中只有加解密相关的内容,但除非我能得到这份加密密钥,不然我也没法子解密这个 `refreshToken` > > > [#107 (comment)](https://github.com/huanghongxun/HMCL/issues/107#issuecomment-279193675) > > [#107 (comment)](https://github.com/huanghongxun/HMCL/issues/107#issuecomment-279344793) > > 代码是开源的,加密有用? > > 不公开是不可能的,Java反编译随时都可以知道代码 我对此表示怀疑态度)...

> 那,加密的密钥存哪 可以让用户自行决定,比如让他们自己生成 PGP 密钥或者自己选择保存位置,或者直接调用系统的 (Windows 的我不太清楚,Linux 的桌面环境有专门的 PGP 密钥保管库)

或者去看看别的一些需要加密但是开源的工具也不是不行)

> > 或者去看看别的一些需要加密但是开源的工具也不是不行) > > 算是个大工程了吧, Glavo 当时尝试搞过但没弄好,就弄个了全局账户和便携账户 这种东西确实不算很简单(至少我的技术力实现不了),但是也不应该算是一个很难搞的东西 加密库都是现成的,直接引用就好了,使用教程网上应该也是一抓一大把,毕竟加密存储账户信息这个东西也不算是很冷门)

不过我还是要骂一句麻将,这种高安全性的东西为什么官方不做一个存储,甚至 tmd 官启都是直接塞进一个 json 文件的,就很抽象

我觉得这个东西应该去麻将官网使劲骂,这种东西完全是官方自己没做好的锅 据我了解,全球搞 Minecraft `accessToken` 加密的启动器总共就没几个,这也是为什么偷 `refreshToken` 的病毒会如此泛滥的原因

> > 不过我还是要骂一句麻将,这种高安全性的东西为什么官方不做一个存储,甚至 tmd 官启都是直接塞进一个 json 文件的,就很抽象 > > 目前 HMCL 也是直接塞到一个 json 文件( HMCL 是为了符合官方标准,如果官方都重视,那自然也就没这么多事了) 所以 F**K U SHITJUMP

> 目前,HMCL 支持便携账户和全局账户。便携账户用于把游戏塞到 U 盘里,全局账户用于防止意外泄漏 Token 关于加密的事,或许可以为全局账户加密(密钥通过某些唯一识别码生成),便携账户可选是否开启加密,如果开启则在每次启动 HMCL 时要求手动输入密钥? 赞成