【发布时间】:2011-07-06 17:19:23
【问题描述】:
我被要求为 iPad 开发公司的后台,在开发登录屏幕时,我遇到了身份验证过程的问题。
密码与盐连接,使用 SHA-256 散列并存储在数据库中。 后台是基于 Flash 的,使用 as3crypto 库对密码+盐进行哈希处理,我的问题是当前的实现使用 Base64 进行输入和输出。
This site 演示了如何做到这一点:只需选择 Hash 并选择 Base64 作为输入和输出格式,然后启动。到目前为止,我所有的尝试都产生了与这个网站(和后台代码)给我的结果不同的结果。
虽然我认为理论上应该比较简单:
- Base64 编码 pass+salt
- 使用 SHA-256 对其进行哈希处理
- Base64 再次编码结果
到目前为止,我还无法做到这一点,老实说,我感到非常头疼。 我的代码正在变成一个活生生的迷宫,我估计明天我得重做。
有什么想法吗? 提前干杯和感谢
PS:顺便说一下,这是 Backoffice 用于生成散列密码的 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();
【问题讨论】:
-
您是否有机会在后台使用jpauclair.net/2010/01/09/base64-optimized-as3-lib 库?如果是这样,您可能会通过阅读它更清楚地了解后台代码的作用。