💬
ハッシュ関数と暗号化って何が違うのか
ハッシュ関数とは
入力値を変換して別の値を出力する関数のこと。
ハッシュ関数には、内部アルゴリズムの違いごとに異なる関数が用意されている。
ハッシュ関数と暗号化の違い
変換後の値を変換前の値に戻すことができるか否か(不可逆性)の違い。
ハッシュ関数:変換後の値を元に戻す方法がない。
暗号化:変換後の値を元に戻す方法がある。(復号できる)
ハッシュ関数の使い方
hash関数を使うことで、ハッシュを得ることができる。
hash(string $algo, string $data)
$algo: ハッシュ関数で使いたいアルゴリズム
$data: ハッシュ関数で変換したい文字列
第一引数で指定できるアルゴリズムは、以下のように沢山あるが、
代表的なのがsha256らしい。
hash('sha256', 'hoge'):
のように使用する。
第一引数で指定できるアルゴリズム一覧はこちら
暗号化の使い方
暗号化するときは、base64_encodeを使う
base64_encode(string $string):
$string: 暗号化したい文字列
復号化するときは、base64_decodeを使う
base64_decode(string $string, bool $strict = false)
$string: 復号化したい文字列(base64_decodeされた文字列)
$strict: strictを`true`にした場合、$stringにアルファベット以外の文字列が含まれていた場合、falseを返す。strictを`falseにした場合、アルファベット以外の文字列は除外してdecodeする`
base64とは
すべてのデータを「a~z」「A~Z」「0~9」「+」「/」の64文字と「=」の組み合わせに変換するやり方
Discussion