2021年10月28日木曜日

golang でパスワードの強度をチェックする方法

golang でパスワードの強度をチェックする方法

概要

hesahesa/pwdbro を使います

環境

  • macOS 11.6
  • golang 1.17

インストール

サンプルコード

package main

import (
	"fmt"
	"github.com/hesahesa/pwdbro"
)

func main() {
	pass := ""
	pwdbro := pwdbro.NewDefaultPwdBro()
	// パスワードの強度のチェック結果は status に配列で格納されています
	// pwnedpasswords と zxcvbn とパスワードが空かの 3 つのチェック方法の結果が格納されています
	status, err := pwdbro.RunChecks(pass)
	if err != nil {
		panic(err)
	}
	// 3 回ループします 
	for _, resp := range status {
		// Safe は true or false が返ってきます
		// true の場合はパスワードが強度チェックをパスしています 
		fmt.Println("*******************Safe")
		fmt.Println(resp.Safe)
		// Method は各パスワードのチェック方法が文字列で格納されています
		fmt.Println("*******************Method")
		fmt.Println(resp.Method)
		// Message は各パスワードチェックの結果が文字列で含まれています
		fmt.Println("*******************Message")
		fmt.Println(resp.Message)
		// Error はもしエラーだった場合に nil 以外のエラー情報が含まれています
		fmt.Println("*******************Error")
		fmt.Println(resp.Error)
	}
}

ポイント

pwnedpasswords というサービスの API を使っているのでオフラインだと pwnedpasswords の結果は必ず false になります

オフラインの場合は zxcvbn の結果を見て判断すると良いかなと思います

0 件のコメント:

コメントを投稿