スクリプトのお勉強 技術

言語別ログイン機能パスワード保存処理方針

投稿日:

ちょっと前に、ログイン機能を作成した際、パスワードを暗号化するか、という議論を目にしたことがありました。

昔だと、「パスワードを暗号化しない」方で実装していましたが、最近はセキュリティが当たり前になってきたので、それもどうかと思います。

なのであらかじめ、パスワードを保管する際に使用する暗号機能の方針ぐらいは調べておこうと思いました。

JavaScript

実際には難しそうなので、パスワード保管の要件を外します。いまのところJavaScript(クライアント側)で暗号化してパスワードを保管しておく安全な方法は難しいです。。

Perl

Digest::SHAを使用します。

  • 保管($digest): $digest = hmac_sha256_hex($password, $salt);
  • salt: 固定文字列
  • チェック: $passwordと$saltを入れて、保管した$digeestと一緒かチェック。
use Digest::SHA qw(hmac_sha256_hex);
my $data = "aaa";
my $key = "bb";
my $digest = hmac_sha256_hex($data, $key);

Python

import hashlib, uuid

salt = uuid.uuid4().hex
password = "aa"
hashed_password = hashlib.sha256(password + salt).hexdigest()

print (hashed_password)

ruby(rails)

bcryptを使います。すぐには分からなかったので割愛します。

PHP(7.0)

password_hashを使用します。

<?php

$input = "aaa";

$hash = password_hash($input, PASSWORD_DEFAULT);

print $hash;

if (password_verify($input, $hash)) {
            echo 'Password is valid!';
} else {
            echo 'Invalid password.';
}

-スクリプトのお勉強, 技術

執筆者:

関連記事

no image

GLP-1 メディカルダイエット 58日目

メディカルダイエットして58日目の記録をしておこうと思います。 9回目。 今回は左腹(中部)に打ちました。痛いのはいまだに慣れない。。 土曜にゲットしてした 渋谷に行ってきたが、そこの医院には相変わら …

pysnmp v6 から v7 への移行

はじめに 前回の記事でPythonによるSNMPTrapの送信について記事を書きました。 その後、PythonからのSNMPTrap送信する方法を調査したら、方法が変わっていることに気づきしました。 …

go 1.16 でviperを使って設定ファイルを読みだすプログラムを作ってみた

他にたくさんあるけど こんな感じの内容はたくさんあると思いますが、、goの初心者がなんとなくgoの手習いとして、まずは設定ファイルを読みだすことをしてみようと思いました。 go動作環境 windows …

svelteをチュートリアルしてみる

年末の休みは、svelteのチュートリアルをしてみました。なんとなくやはりそう?なので。 svelteとは Webアプリのフロントエンド(UI)用フレームワークです。要するにReactみたいなもんです …

(小ネタ) Reflex (Python) にてタブ形式のlinkを設定する

小ネタですが書いておきます。 Reflex とは、は割愛 前回に書いたので割愛します。 使い始めてみた 感想は後日、ということで 本題、タブ形式のlinkメニュー たいていのUIコンポーネントにはタブ …

google オプトアウト Click here to opt-out.