Node.js を使用してパスワード ジェネレータを作成するための完全な手順

Node.js を使用してパスワード ジェネレータを作成するための完全な手順

1. 準備

1.1 プロジェクトを作成する

$ npm 初期化 

1.2 インストールの依存関係

$ npm i コマンダー チョーク クリップボード

1.3 エントリファイルindex.jsを作成する

process.argvを見てみましょう

// インデックス.js
コンソール.log(プロセス.argv)

端末実行コマンド

$ ノードインデックス

ターミナルでは

process.argv プロパティは、Node.js プロセスの開始時に渡されたコマンドライン引数を含む配列を返します。 最初の要素は process.execPath になります。 2 番目の要素は、実行される JavaScript ファイルへのパスになります。 残りの要素は追加のコマンドライン引数になります。

コマンドを実行

$ ノードインデックス生成

3番目のパラメータ: generate

2. コマンドラインの記述

2.1 バージョンと説明を追加する

// インデックス.js
const プログラム = require('commander');
program.version('1.0.0').description('シンプルなパスワードジェネレーター').parse()

ターミナル実行コマンド:passgenの説明を見ることができます

コマンドの実行を続けると、passgenのバージョンが表示されます。

2.2 パスワードの長さを設定するコマンド

const プログラム = require('commander');

program.version('1.0.0').description('シンプルなパスワードジェネレーター')
program.option('-l --length <数値>', 'パスワードの長さ').parse()
コンソールログ(プログラム.opts())

ターミナル実行コマンド:passgenのパスワード長コマンドを確認できます

端末実行コマンド:

2.2 パスワードの長さのデフォルト値を追加: 8

program.option('-l --length <number>', 'パスワードの長さ', '8').parse()
コンソールログ(プログラム.opts())

ターミナル実行コマンド: パスワードの長さを設定しないでください。デフォルト値の-8が使用されていることがわかります。

ターミナル実行コマンド: パスワードの長さを10に設定する

2.3 パスワード保存コマンドの設定

program.option('-l --length <数値>', 'パスワードの長さ', '8')
.option('-s --save', 'パスワードをpassword.txtに保存する').parse()

2.4 パスワード形式の設定: 数字なし

.option('-nn --no-number', '数字を削除').parse()

ターミナル実行コマンド: デフォルトでは、数字があります

端末実行コマンド: デジタルパスワードの設定とクリア

2.5 設定パスワードの形式: 記号なし

.option('-ns --no-symbols', 'シンボルを削除する').parse()

ターミナル実行コマンド: デフォルトではシンボルがあります

端末実行コマンド: デジタルパスワードの設定とクリア

3. コマンドラインの解析 - パスワードの作成

// インデックス.js
const プログラム = require('commander');
const createPassword = require('./utils/createPassword')
定数ログ = console.log

program.version('1.0.0').description('シンプルなパスワードジェネレーター')
プログラム
.option('-l --length <数値>', 'パスワードの長さ', '8')
.option('-s --save', 'パスワードをpassword.txtに保存します')
.option('-nn --no-numbers', '数字を削除')
.option('-ns --no-symbols', 'シンボルを削除する').parse()

const {長さ、保存、数値、シンボル} = program.opts()

// 生成されたパスワードを取得する
const generatedPassword = createPassword(長さ、数字、記号)

// 生成されたパスワードを出力する

ログ(生成されたパスワード)

utils/createPassword.js を作成する

// パスワードを作成.js
定数アルファ = 'qwertyuiopasdfghjklzxcvbnm'
定数数値 = '0123456789'
定数シンボル = '!@#$%^&*_-=+'


const createPassword = (長さ = 8、数値を持つ = true、シンボルを持つ = true) => {
    chars = alpha とします
    hasNumbers ? (文字 += 数字): ''
    hasSymbols ? (文字 += シンボル): ''
    generatePassword(長さ、文字数)を返す
}

const generatePassword = (長さ, 文字数) => {
    パスワード = ''
    for(let i = 0; i < 長さ; i++){
        パスワード+= chars.charAt(Math.floor(Math.random()*chars.length))
    }
    パスワードを返却
}
module.exports = パスワードを作成

ターミナル実行コマンド: パスワード生成の表示

3.1 色の追加

// インデックス.js
const チョーク = require('チョーク');
log(chalk.blue('生成されたパスワード: ') + chalk.bold(generatedPassword))

ターミナルはコマンドを実行します: 色が変わるのがわかります

3.2 クリップボードを追加

// インデックス.js
定数 clipboardy = require('clipboardy');
// クリップボードにコピー
clipboardy.writeSync(生成されたパスワード)
log(chalk.yellow('パスワードがクリップボードにコピーされました!'))

4. パスワードを対応するファイルに保存します

// インデックス.js
const savePassword = require('./utils/savePassword')
// ファイルに保存
if (save) savePassword(generatedPassword)

utils/savePassword.js を作成する

定数 fs = require('fs')
定数パス = require('path')
定数os = require('os')
const チョーク = require('チョーク')

const savePassword = (パスワード) => {
    fs.open(path.join(__dirname, '../', 'passwords.txt'), 'a', '666', (e, id) => {
        fs.write(id, パスワード + os.EOL, null, 'utf-8', ()=>{
            fs.close(id, ()=>{
                console.log(chalk.green('パスワードがpasswords.txtに保存されました'))
            })
        })
    })
}

module.exports = パスワードを保存

ターミナルでコマンドを実行します。プロジェクト内にpasswords.txtファイルが生成され、パスワードが正常に保存されていることがわかります。

5. ローカルnpmモジュールをグローバルpassgenとして設定する

// パッケージ.json
  「preferGlobal」:true、
  "bin":"./index.js",

端末実行コマンド:

npm link コマンド: ローカル モジュールのデバッグとテストを容易にするために、npm モジュールを対応する実行中のプロジェクトにリンクします。

//index.js
#!/usr/bin/env node //最初の行を追加

端末実行コマンド:

要約: 完了しました ✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️

参考リンク: nodejs.cn/api/process…

要約する

Node.js を使用してパスワード ジェネレーターを作成する方法についての記事はこれで終わりです。Node.js パスワード ジェネレーターの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  MySQL レプリケーション メカニズムの原理の説明

>>:  dockerでredis5.0.3をインストールする方法

推薦する

Centos 7 sshd の変更 | ルートログインの禁止と sshd ポートスクリプトの定義

1. 新しいユーザーwwweee000を作成します [root@localhost ~]# user...

JavaScript で 2 次元配列を作成するためのヒント

Js での 2 次元配列の作成:まず、JavaScript は 1 次元配列のみをサポートしています...

Vue の基本リスナーの詳細な説明

目次Vueのリスナーとは何かリスナーの使い方vue リスナーウォッチVue リスナー - ディープリ...

MySQLでのカスタムパラメータの使用に関する詳細な説明

MySQL 変数には、システム変数とシステム変数が含まれます。今回の学習課題はユーザー定義変数です。...

Javascript ツリー メニュー (11 項目)

1. dhtmlxツリー dHTMLxTree は機能豊富なツリー メニュー コントロールです。豊...

ユニークインデックスの S ロックと X ロックによる MySQL デッドロック ルーチンの理解

「初心者向けソースコードからの MySQL デッドロック問題の理解」では、MySQL ソースコードを...

Vue CLI のモードと環境変数の詳細な説明

序文実際のプロジェクトの開発では、通常、プロジェクト開発フェーズ、テストフェーズ、最終オンラインフェ...

mysql 計算関数の詳細

目次2. フィールドの連結2. MySQL関数の例をいくつか挙げてください。 2.1 シンボル処理2...

MySQL シリーズ: redo ログ、undo ログ、binlog の詳細な説明

取引の実施REDO ログはトランザクションの永続性を保証し、UNDO ログはトランザクションのロール...

HTML での一般的なリダイレクト接続の例コード

コードをコピーコードは次のとおりです。 window.location.href="zcb...

Vueでパスワードの表示と非表示機能を実装するアイデアを詳しく解説

効果: アイデア:入力タイプ属性を使用して、タイプ値がテキストの場合はパスワードを表示し、タイプ値が...

Dockerコンテナとローカルマシン間でファイルを転送する方法

ホストとコンテナ間でファイルを転送するには、コンテナの完全な ID が必要です。取得方法は以下の通り...

MySQL でデータ復旧に binlog を使用する方法

序文最近、オンラインでデータが誤って操作されました。データベースが直接変更されたため、それを回復する...

Html+CSS フローティング広告ストリップの実装

1.html部分コードをコピーコードは次のとおりです。 <!DOCTYPE html> ...

VirtualBox での CentOS 8.1 仮想マシンのインストールを最小限に抑える詳細なチュートリアル

1. 関連ツールと画像をダウンロードするダウンロードリンクバーチャルボックス: https://do...