このサイトはアフィリエイト広告を利用してます

セキュリティ知識を高めるパスワード認証スクリプト

【サンプル】Illustratorスクリプトを使ったパスワード認証

訪問していただきありがとうございます。

  • Illustratorスクリプトにアクセス制限を設定したい
  • パスワード認証の基本概念について学習したい
  • セキュリティに関する知識を深めたい

スクリプトの開発において、セキュリティは非常に重要です。
ですが、セキュリティ機構の設計や実装に関する知識が不足していると感じている人は多いですよね

そこで、今回はシンプルなパスワード認証スクリプトを紹介します。

パスワード認証の仕組みを理解することで、セキュリティに関する基本的な知識が身につき、安全なコーディングやセキュアなアプリケーションの開発が可能になります。

また、プログラム内で使用されているセキュリティ機構を理解することで、同様の機能を持つ独自のセキュリティ機構を設計・実装できるようになるので、ぜひ最後までご覧ください。

Profile
この記事を書いている私は15年以上にわたりDTPデザイナーとして活動しており、Illustratorを使って名刺、チラシ、ポスターなどの制作に携わってきました。
セキュリティに関しても国家資格【情報セキュリティマネジメント】を取得し、職場のセキュリティ強化に努めています。
また、Illustratorスクリプトに関する記事も定期的に公開しており、自作スクリプトに興味のある方に役立つ情報を提供していますので、ぜひご参考にしてください。
関連記事:「完全無料」で作業の効率化!Illustratorスクリプト特集!

「クリエイティブ」がわかる転職エージェント

●「量より質」を重視した求人のご紹介
●「クリエイティブがわかっている」
●「求人企業を深く知る・密接な関係」

【パスワード認証】スクリプトの概要

passAuthNの概要
まず、最初に【パスワード認証】スクリプトの概要ついて下記の内容を解説します。

・開発
・ダウンロード
・スクリプトの使い方
・動作チェック

開発

このスクリプト(passAuthN.jsx)は、JavaScript言語をベースに私が自作したIllustrator用のスクリプトです。
主な機能は、マスターパスワードを設定し、そのパスワードを用いて認証を行う仕組みを提供します。
具体的には、以下の通りです。

・マスターパスワードの文字数は12桁以下
・マスターパスワードはJSON形式で外部に保管
・マスターパスワードは16進数に変換
・パスワード認証を3回間違えると終了

なお、次の記事ではパスワードの強度やセキュリティについて事例を紹介しながら解説してるので
良ければ参考にしてください。

関連記事:【コード公開】Illustratorスクリプトで簡単パスワード生成!
関連記事:パスワードの【安全な作り方・管理・解析時間・特定】について、まとめてみた

ダウンロード

本スクリプトは、下記からサンプルとしてダウンロードすることができます。
使用上の注意や免責については「注意事項と免責事項」に記載していますので、必ずお読みください

ダウンロード:passAuthN.jsx

スクリプトの使い方

本スクリプトは、下記のSTEPで使うことができます。

  • STEP1.ファイルメニューからスクリプトを選択
  • STEP2.【passAuthN.jsx】を選択
  • STEP3.パスワードを入力
  • STEP4.正しければ認証

パスワード認証の動作プレビュー

なお、次の記事ではそもそもIllustratorスクリプトってどうやって使えばいいのか、活用事例を交えながら紹介しているので良ければ参考にしてください。

関連記事:スクリプトでデザイン革命!Illustratorを最大限に活かす使い方【Mac】

動作チェック

  • IllustratorCS6【Win】
  • Illustrator2024【mac】

で、動作チェックをおこないました。



【パスワード認証】スクリプトのソースコード

passAuthNのソースコード
ここでは、passAuthN.jsx】の動作フローと処理条件がわかるソースコードを紹介します。
説明ようのコメントアウトも含まれていますので参考にしてください

なお下記の記事では、Illustratorスクリプトを自作する方法についてサンプル事例を交え解説しているのでよければ参考にしてください。

関連記事:デザインを自動化する!Illustratorスクリプトの作り方

ソースコード


var attempts = 0; // パスワードの試行回数をカウントする変数を定義する
const  fillFolder = new Folder(Folder.userData+'/passAuthN');   //アプリケーションデータが格納されるフォルダ 
const jsonFile = new File(Folder.userData+'/passAuthN/password.json');  //mac/Users/ユーザー名/Library/Application Support/passAuthN/password.json

//入力された文字を16進数に変換 ここから
function stringToHex(input) {
    var result = "";
    for (var i=0; i < input.length; i++) {
        var hex = input.charCodeAt(i).toString(16);//入力された文字を十六進数に変換
        result += ("000"+hex).slice(-4);    //末尾から4文字を取り出す
    }
    return result;
};
//入力された文字を16進数に変換 ここまで

try{
    // マスターパスワード ここから
    if (!jsonFile.exists) {//jsonFileが存在しない場合
        //12桁より大きい場合は処理を繰り返す ここから
        do {
            var input = prompt("マスターパスワードを12桁以内で設定してください:");
        } while(input.length > 12);
        //12桁より大きい場合は処理を繰り返す ここから
        
        // JSONデータとしてマスターパスワードを書き出す ここから
        if(! fillFolder.exists){     //fillFolder存在しない場合
                 fillFolder.create();   //フォルダ作成
            }
        jsonFile.open('w'); // 書き込みモードでファイルを開く
        jsonFile.write('{' + '"password":"' + stringToHex(input) + '"' +'}'); // パスワードをJSON形式で書き込む
        jsonFile.close(); // ファイルを閉じる
        // JSONデータとしてマスターパスワードを書き出す ここまで
    };//if
    // マスターパスワード ここまで

    //パスワードの確認 ここから
    while (attempts < 3) { // パスワードの試行回数が3回未満である限り、ループを続ける
        var answer = prompt("パスワードを入力してください:"); // パスワードを要求する
        if (answer === null) { // キャンセルボタンが押された場合
            alert("パスワード入力がキャンセルされました。プログラムを終了します。");
            break;  //ループの終了
        } else {
            // JSONファイルからパスワードを読み込む ここから
            jsonFile.open('r'); // 読み取りモードでファイルを開く
            const storedPassword =  eval('('+jsonFile.readln()+')').password;//eval()関数はJSON文字列をJavaScriptオブジェクトに変換し、そのpasswordプロパティを取得されます。
            jsonFile.close(); // ファイルを閉じる
            // JSONファイルからパスワードを読み込む ここまで
            
            // パスワードがマッチするか  ここから
            if (stringToHex(answer) === storedPassword) { // ユーザーが入力したパスワードが正しい場合
                alert("パスワードが正確です。スクリプトを実行します。");    // パスワードが正しい場合、スクリプトの残りの部分を実行する
            // パスワードがマッチするか  ここまで
            
                // --------ここに実行したいスクリプトを書く----------
                alert ('サンプルスクリプト');

                break;  //ループの終了
            } else { 
                attempts++; // パスワードの試行回数を1増やす
                if (attempts < 3) { // まだ試行回数が3回未満であれば、エラーメッセージを表示する
                    alert("パスワードが間違っています。再度入力してください。");
                } else { // 試行回数が3回に達したら、エラーメッセージを表示してループから抜け出す
                    alert("パスワードを3回間違えました。プログラムを終了します。");
                }   //else
            }   //else
        }   //else
    }//while
    //パスワードの確認 ここまで
} catch (e) {
    alert("エラーが発生しました: " + e.message);  
}
/*
 .fsName:ファイルシステムに適した形式でパス名を返す
.exists:プロパティはファイルやフォルダの存在を確認する
 break:JavaScriptの制御フローステートメントの一つで、forループ、whileループ、do...whileループ、またはswitchステートメントから抜け出すために使用   
 e.message:eは、tryブロック内で発生したエラーオブジェクトを参照します。したがって、e.messageは発生したエラーの詳細なメッセージを取得します。*/



注意事項と免責事項

注意している女性
本記事に記載してあるスクリプトを実行した結果生じるトラブルに関しては一切の責任を負いません。ご利用は自己責任にてお願いいたします。

またIllustratorのアップデートにより動作が変わってしまう可能性もあります。アップデートによる動作の不具合に関しては、対処しかねるので予めご理解ください。

最後に本記事で配布しているスクリプトを無断で転送・販売・配布することは禁止いたします。


【パスワード認証】スクリプトのまとめ

SUMMARY

パスワード認証のセキュリティは、スクリプトやアプリケーションの開発において不可欠な要素です。
本記事では、Illustratorスクリプトを使ったシンプルなパスワード認証の実装方法について解説しました。

パスワード認証スクリプトのポイントをおさらいすると

・マスターパスワードの文字数は12桁以下
・マスターパスワードはJSON形式で外部に保管
・マスターパスワードは16進数に変換
・パスワード認証を3回間違えると終了

パスワードによるセキュリティの重要性はますます高まっており、個人情報や機密情報を扱う多くのアプリケーションが、適切なセキュリティ機構を備えることが求められています。
セキュリティに関する知識やスキルを習得することは、開発者やプログラマーにとって必須の能力であり、信頼性の高いアプリケーションを開発するための重要な一歩です。

この記事を通じて得られた知識やスキルを活用し、これから開発するアプリケーションやスクリプトにセキュリティを組み込んでいきましょう。

ここまで読んでIllustratorスクリプトの開発について詳しく知りたくなった方には、次の記事でおすすめの書籍とWEBサイトも紹介しています。興味があればぜひ参考にしてください
行動を起こす第一歩が、そこにあります。

というわけで今回は以上です。
【サンプル】Illustratorスクリプトを使ったパスワード認証!』を最後までお読みいただき、ありがとうございました。

ブログランキング・にほんブログ村へにほんブログ村 人気ブログランキング


ガネメ現役サラリーマン

投稿者の過去記事

◇このブログでは、15年以上DTPデザイナーとして、学んできたデザインやパソコンのセキュリティ知識・参考になった書籍などを紹介しています。
たまに、脇道にそれることもあります。

◇このブログはアフィリエイト広告を利用しています

◇取得資格
・情報セキュリティマネジメント
・ITパスポート
・色彩検定 2級
・色彩検定 UC級
・屋外広告士
・第2種電気工事士
その他・・・・

プロフィール

face

ガネメ
鹿児島県在住
現役サラリーマン

◇このブログでは、15年以上DTPデザイナーとして、学んできたデザインやセキュリティ知識、参考になった書籍などを紹介しています。
たまに、脇道にそれることもあります

◇取得資格
・情報セキュリティマネジメント
・ITパスポート
・色彩検定 2級
・色彩検定 UC級
・屋外広告士
・第2種電気工事士
その他・・・・

詳しいプロフィールはこちら

アーカイブ

カテゴリー

使用中のレンタルサーバー

ピックアップ記事

  1. Illustratorの便利機能
    Illustratorの作業を自動化したい EXCELのマクロみたいな機能を探し…
  2. 三角関数や円周率を使ってサッカーボールの作成 Illustratorスクリプト
    ・図形の座標を取得したい ・三角関数のコードについて学びたい ・プログ…
  3. includeを使う方法
    Illustratorスクリプトのライブラリを作りたい 関数を外部ファイルとして…




PAGE TOP