我被要求为 iPad 开发公司的后台,在开发登录屏幕时,我遇到了身份验证过程的问题。
密码与盐连接,使用 SHA-256 散列并存储在数据库中。后台是基于 Flash 的,使用as3crypto库对密码+盐进行哈希处理,我的问题是当前的实现使用 Base64 进行输入和输出。
该站点演示了如何做到这一点:只需选择 Hash 并选择 Base64 作为输入和输出格式,然后开火。到目前为止,我所有的尝试都产生了与这个站点(和后台代码)给我的不同的结果。
虽然我认为理论上应该相对简单:
- Base64 编码 pass+salt
- 使用 SHA-256 对其进行哈希处理
- Base64 再次编码结果
到目前为止,我还无法做到这一点,说实话,我很头疼。我的代码正在变成一个活生生的迷宫,我估计明天我必须重做它。
有任何想法吗?提前欢呼和感谢
PS:顺便说一下,这是后台生成哈希密码的 Flash 代码:
var currentResult:ByteArray;
var hash:IHash = Crypto.getHash('sha256');
var data:ByteArray = Base64.decodeToByteArray(str + vatel);
currentResult = hash.hash(data);
return Base64.encodeByteArray(currentResult).toString();