会社の iPad 用バックオフィスの開発を依頼されました。ログイン画面を開発しているときに、認証プロセスで問題が発生しました。
パスワードはソルトで連結され、SHA-256 を使用してハッシュされ、データベースに保存されます。バックオフィスは Flash ベースで、as3cryptoライブラリを使用してパスワードとソルトをハッシュします。私の問題は、現在の実装では入力と出力の両方に Base64 を使用していることです。
このサイトでは、これがどのように行われるかを示しています。Hash を選択し、入力と出力の両方の形式で Base64 を選択するだけです。これまでのところ、私のすべての試みは、このサイト (およびバックオフィス コード) が私に与えたものとは異なる結果をもたらしました。
理論的には比較的単純なはずだと思いますが:
- パス + ソルトを Base64 でエンコードする
- 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();