Hashing

3706 ワード


Hashing


暗号化の基礎
暗号化は、一連の情報を任意の方法で別の形式に変換し、誰かが情報を持っていない限り、「アルゴリズム」を使用して情報を管理することです.

暗号化の例


shift('bicyle', 2) // 'dkezeng'
shift('dkezeng', -2) // 'bicyle'
// 
const shiftBy = function(content, offset) {
  return content.split('').map(fnuction(letter) {
    return String.fromCharCode(letter.charCodeAt() + offset)
  }).join('')
}
指定された場所のアルファベットを返します.
任意の演算を任意の文字列に適用し、他の文字列に変換します.
1.すべての値についてハッシュ値を計算するのにあまり時間がかかりません.
2.ハッシュ値はできるだけ避け、すべての値に一意のハッシュ値があります.
3.小さな単位変更でも、全く異なるハッシュ値が必要です.

外部生成アルゴリズムによるハッシュ

Salt


暗号化が必要な値に「個別の値」を追加することで、結果を変更します.
  • のみが暗号化されている場合、復号結果は常に同じです.
    解訳された値と元の値生成テーブル(Rainbowテーブル)を復号する場合もある.
  • の元の値に任意の約定された「独立文字列」を追加してハッシュすると、
    セキュアデバイス
  • は、返されるハッシュ値が既存のハッシュ値とは全く異なり、アルゴリズムが露出しても元の値を保護することができる.
  • 既存:(暗号化する値)=>(ハッシュ値)
    Saltの使用:(暗号化する値)+(Saltの値)=>(ハッシュ値)
  • Saltを使用する際の注意事項

  • Saltでは、各ユーザーとパスワードに一意の値が必要です.
  • ユーザーアカウントを作成し、パスワードを変更する場合は、新しい任意のSaltを使用して復号する必要があります.
  • Saltを繰り返し使用しないでください.
  • SaltはDBのユーザテーブルに格納されるべきである.