

高機密データの保護に特化したtemcryptは、時間の経過とともに拡張可能な複雑性を提供する高度な多層データ進化型暗号化メカニズムであり、一般的なブルートフォース攻撃に対して耐性があります。
デプロイする際に、独自のアプリケーション、スクリプト、自動化を作成できます。
temcrypt が何を表すのか、特徴、作成に至ったインスピレーションなどをご確認ください。知識ドキュメントを読む。これは非常に重要です。
temcryptはNode.js v18以上、およびモダンなウェブブラウザの両方と互換性があり、様々な環境で使用できます。
temcryptが使用する唯一の依存関係は、AES-256、SHA-256 などの暗号化アルゴリズムを処理するための crypto-js と、いくつかのエンコーダ、およびNode.jsでのファイル処理に使用される fs です。
temcryptを使用するには、Node.js がインストールされている必要があります。その後、npmを使用してtemcryptをインストールできます:
npm install temcrypt
その後、以下のようにコードにインポートします:
const temcrypt = require("temcrypt");
依存関係を手動でインストールする手間を省く自動インストール機能を備えています。temcrypt.js ライブラリを実行するだけで依存関係が自動的にインストールされ、コード内で呼び出すことができます。これはポータブルにするために行われました:
node temcrypt.js
または、以下のスクリプトタグを含めることで、ブラウザで直接temcryptを使用することもできます:
<script src="temcrypt.js"></script>
またはミニファイ版:
<script src="temcrypt.min.js"></script>
CDN からウェブサイトやウェブアプリケーションにライブラリを呼び出すこともできます:
<script src="https://cdn.jsdelivr.net/gh/jofpin/temcrypt/temcrypt.min.js"></script>
temcryptは、encrypt および decrypt 関数を提供し、情報を安全に保護および開示します。
パラメータ
dataString (string): 暗号化する文字列データ。dataFiles (string): 暗号化するファイルパス。dataString または dataFiles のいずれかを指定します。mainKey (string): 暗号化のためのメインキー(秘密鍵)。extraBytes (number、オプション): 暗号化に追加する追加バイト数。temcrypt暗号化プロセスで使用されるオプションのパラメータです。暗号化データに追加バイトを追加することで、暗号化の複雑さが増し、復号化により多くの処理能力が必要になります。また、暗号化の重みを変更することでパターンを失わせる役割も果たします。戻り値
status (boolean): 復号化の成功を示す true。hash (string): 暗号化データの正当性を検証するために生成された一意のハッシュ。dataString (string) または dataFiles: 入力に応じて、復号化された文字列または復号化されたファイルのパス。updatedEncryptedData (string): 復号化後に更新された暗号化データ。復号化のたびに mainKey の順序が変わり、最終復号化日時が保存されるため、出力が更新されます。creationDate (string): 暗号化データの作成日。lastDecryptionDate (string): データの最終復号化成功日時。dataString が指定された場合:
hash (string): 暗号化データの正当性を検証するために生成された一意のハッシュ。mainKey (string): 暗号化に使用されたメインキー(秘密鍵)。timeKey (): 暗号化のタイムキー(秘密鍵)。以下にtemcryptの使用例を示します。暗号化する際には、キーを入力し、情報を暗号化した時と分を保存する必要があることに注意してください。情報を復号化するには、後日同じ時と分に同じメインキーを使用する必要があります:
const dataToEncrypt = "Sensitive data";
const mainKey = "your_secret_key"; // カスタムキーを入力
const encryptedData = temcrypt.encrypt({
dataString: dataToEncrypt,
mainKey: mainKey
});
console.log(encryptedData);
const encryptedData = "..."; // 暗号化プロセスで取得した暗号化データ
const mainKey = "your_secret_key";
const decryptedData = temcrypt.decrypt({
dataString: encryptedData,
mainKey: mainKey
});
console.log(decryptedData);
ファイルの暗号化:
temcryptを使用してファイルを暗号化するには、encrypt 関数を dataFiles パラメータとともに使用します。以下は、ファイルを暗号化し、その結果を取得する例です:
const temcrypt = require("temcrypt");
const filePath = "path/test.txt";
const mainKey = "your_secret_key";
const result = temcrypt.encrypt({
dataFiles: filePath,
mainKey: mainKey,
extraBytes: 128 // オプション: 128バイト追加
});
console.log(result);
この例では、'test.txt' を暗号化したい実際のファイルパスに置き換え、'your_secret_key' を暗号化のメインキーとして設定してください。result オブジェクトには、一意のハッシュ、メインキー、タイムキー、暗号化されたファイルのパスなど、暗号化の詳細が含まれます。
ファイルの復号化:
以前にtemcryptで暗号化されたファイルを復号化するには、decrypt 関数を dataFiles パラメータとともに使用します。以下は、ファイルを復号化し、その結果を取得する例です:
const temcrypt = require("temcrypt");
const filePath = "path/test.txt.trypt";
const mainKey = "your_secret_key";
const result = temcrypt.decrypt({
dataFiles: filePath,
mainKey: mainKey
});
console.log(result);
この例では、'path/test.txt.trypt' を暗号化されたファイルの実際のパスに置き換え、'your_secret_key' を復号化のメインキーとして設定してください。result オブジェクトには、復号化のステータスと、成功した場合は復号化されたデータが含まれます。
ファイルを正常に復号化するには、暗号化時に使用した正しいメインキーを、同じ時と分に指定することを忘れないでください。メインキーが間違っている、ファイルが改ざんされている、または時刻が正しくない場合、復号化ステータスは false となり、復号化されたデータは利用できません。
temcryptは、暗号化と復号化以外の追加操作を実行するための utils 関数を提供します。これらのユーティリティ関数は、機能性と使いやすさを向上させるために設計されています。
関数一覧:
以下に、その詳細と使用方法の実装例を示します。
メインキーの更新:
changeKey ユーティリティ関数を使用すると、暗号化データをそのまま維持しながら、データの暗号化に使用されたメインキーを変更できます。これは、暗号化データのセキュリティを強化したり、メインキーを定期的に更新したりする場合に便利です。
dataFiles (オプション)**: temcryptを使用して暗号化されたファイルへのパス。dataString (オプション)**: temcryptを使用して生成された暗号化文字列。mainKey (string): データの暗号化に使用された現在のメインキー。newKey (string): 現在のメインキーを置き換える新しいメインキー。const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const currentMainKey = "my_recent_secret_key";
const newMainKey = "new_recent_secret_key";
// 暗号化ファイルのメインキーを更新
const result = temcrypt.utils({
changeKey: {
dataFiles: filePath,
mainKey: currentMainKey,
newKey: newMainKey
}
});
console.log(result.message);
データ整合性の確認:
check ユーティリティ関数を使用すると、temcryptで暗号化されたデータの整合性を検証できます。ファイルまたは文字列が有効なtemcrypt暗号化データであるかどうかを確認します。
dataFiles (オプション)**: 確認したいファイルへのパス。dataString (オプション)**: 確認したい暗号化文字列。const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const encryptedString = "..."; // temcryptによって生成された暗号化文字列
// 暗号化ファイルの整合性を確認
const result = temcrypt.utils({
check: {
dataFiles: filePath
}
});
console.log(result.message);
// 暗号化文字列の整合性を確認
const result2 = temcrypt.utils({
check: {
dataString: encryptedString
}
});
console.log(result2.message);
ハッシュの検証:
verify ユーティリティ関数を使用すると、ハッシュ値を使用して暗号化データの整合性を検証できます。暗号化データの出力が指定されたハッシュ値と一致するかどうかをチェックします。
hash (string): 検証するハッシュ値。dataFiles (オプション)**: ハッシュを検証したいファイルへのパス。dataString (オプション)**: ハッシュを検証したい暗号化文字列。const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const hashToVerify = "..."; // 検証するハッシュ値
// 暗号化ファイルのハッシュを検証
const result = temcrypt.utils({
verify: {
hash: hashToVerify,
dataFiles: filePath
}
});
console.log(result.message);
// 暗号化文字列のハッシュを検証
const result2 = temcrypt.utils({
verify: {
hash: hashToVerify,
dataString: encryptedString
}
});
console.log(result2.message);
以下の表は、temcryptが様々なエラーシナリオを示すために使用する重要なエラーコードと、それに対応するエラーメッセージを示しています。
より詳細な使用例については、examples ディレクトリを参照してください。
⚠️ 推奨事項
文字列またはファイルの暗号化サイズは 16 KB(キロバイト) 未満にする必要があります。それより大きい場合、復号化するのに十分な計算能力が必要です。そうでないと、パソコンでは正しいメインキーの組み合わせと適切な暗号化フォーマットを見つけるのに必要な時間を超過し、情報を復号化できなくなります。
ℹ️ ヒント
- temcryptでは、暗号化した日時の同じ時と分に、入力したキーを使って後日のみ情報を復号化できます。
- 時間に注意してください。復号化は最初の2〜10秒の間に開始することをお勧めします。そうすることで、正しいキーフォーメーションを生成するためのアドバンテージが得られます。
このプロジェクトのコンテンツ自体は Creative Commons Attribution 3.0 license の下でライセンスされており、そのコンテンツをフォーマットおよび表示するために使用されるソースコードは MIT license の下でライセンスされています。
Copyright (c) 2023 by Jose Pino
dataString (string): 暗号化された文字列。extraBytes (number、オプション): 暗号化に使用された追加バイト数。dataFiles が指定された場合:
hash (string): 暗号化データの正当性を検証するために生成された一意のハッシュ。mainKey (string): 暗号化に使用されたメインキー。timeKey (string): 暗号化のタイムキー。dataFiles (string): 暗号化されたファイルのパス。extraBytes (number、オプション): 暗号化に使用された追加バイト数。status (boolean): 復号化の失敗を示す false。error_code (number): 復号化失敗の理由を示すエラーコード。message (string): 復号化失敗を説明するエラーメッセージ。| コード | エラーメッセージ | 説明 |
|---|
| 420 | 復号化時間制限を超過しました | 復号化処理が許容時間制限を超えました。 |
| 444 | 復号化に失敗しました | 復号化処理でエラーが発生しました。 |
| 777 | データが提供されていません | 操作にデータが提供されませんでした。 |
| 859 | 無効なtemcrypt暗号化文字列です | 提供された文字列は有効なtemcrypt暗号化文字列ではありません。 |