- UID
- 25998
- 阅读权限
- 40
- 回帖
- 96
- 喵币
- 0
- 有爱
- 25
- DKP
- 916
- 金币
- 37602
- 在线时间
- 159 小时
- 注册时间
- 2020-8-9
- 最后登录
- 2026-2-3
声望: 1009   虚弱: 0

Lv.4(锻造者)

|

楼主 |
发表于 2022-11-3 11:23:50
|
显示全部楼层
其实整个加密过程的重点就是在于byte数组到字符串的转换, 首先不是转换为16进制的hex串, 默认按照utf8来转, 这就是为什么会出现mysql无法插入的问题, 有些字符如果mysql使用utf8的话可能不包含这种乱码.
其次 是 integer 到 数组的转换使用的是小端, 我个人在实现的时候, Java 提供的大数类都默认是大端, 包括JS也是, 没有很好的办法对超大的数进行 大小端指定. 后面虽然通过翻转数组的方式达到了同样的效果, 但是在 计算幂次运算的时候出问题了. 索性就临时抱佛脚, 用了 php , php 官方提供的 c++ gmp 库 对大数的运算有很好的支持. 这也是az官方推荐的做法. |
|