一般的な暗号化アルゴリズムは、基本的にこれらのカテゴリに分割されます。1:線形ハッシュアルゴリズム、2:対称暗号化アルゴリズム、3。非対称暗号化アルゴリズム(レコード)
線形ハッシュアルゴリズム(署名アルゴリズム):MD5、SHA1、HMAC
たとえば、MD5:Message-Digest Algorithm 5(Inform Gigest Algorithm 5)は、完全かつ一貫した情報送信を確保するために使用されます。
特徴:
1。圧縮率:計算されたMD5値の長さは、任意の長さのデータに対して固定されています。
2。計算が簡単:元のデータからMD5値を簡単に計算できます。
3。変更抵抗:1バイトのみが変更されていても、元のデータに変更を加えて、結果のMD5値は非常に異なります。
4.強い防止防止:元のデータとそのMD5値は、同じMD5値(つまり、偽造データ)のデータを見つけるのが非常に困難であることが知られています。
MD5の機能は、デジタル署名ソフトウェアを使用して秘密キーに署名する前に、大容量情報を機密形式に「圧縮」することを許可することです(つまり、任意の長さのバイト文字列を特定の長さの16進数に変換する)
対称暗号化アルゴリズム:AES、DES、3DES
たとえば、AES :(高度な暗号化標準)は、暗号化のRijndael暗号化法としても知られています。これは、米国連邦政府が採用するブロック暗号化標準です。この標準は、元のDESを交換するために使用され、複数の関係者によって分析されており、世界中で広く使用されています。
非対称暗号化アルゴリズム:RSA、DSA、ECC
たとえば、RSA:RSA公開キー暗号システム。いわゆる公開キー暗号化システムは、異なる暗号化キーと復号化キーを使用することです。これは、「既知の暗号化キーから復号化キーを導出することは計算不可能」である暗号化システムです。
公開キーの暗号化システムでは、暗号化キー(つまり、公開鍵)PKは公開情報であり、復号化キー(つまり、シークレットキー)SKは機密を維持する必要があります。暗号化アルゴリズムEおよび復号化アルゴリズムDも公開されています。復号化キーSKは公開キーPKによって決定されますが、SKはPKに基づいて計算することはできません。
nodejsの暗号モジュール
OpenSSLはすでに広く使用されている暗号化アルゴリズムであるため、NodeはOpenSSLライブラリを使用して暗号化テクノロジーを実装しています。アプリケーションで使用できるMD5やSHA-1などのアルゴリズムが含まれています。
次のコードでは、暗号モジュールDESアルゴリズムの実装方法を使用しています
/*** * @author chenjianxiang * @date 2016-07-07 */var crypto = require( 'crypto'); var key = '12345670'; exports.des = {algorithm:{ecb: 'des-ecb'、cbc: 'des-cbc'}、cbc: 'unter(cbc'}、cbc: 'cbc'}バッファ(キー); var iv = new Buffer(iv?iv:0); var cipher = crypto.createcipheriv(this.algorithm.ecb、key、iv); cipher.setautopadding(true)//デフォルトのtrue var cipher = cipher.update(plantext、 'utf8'、 'base64'); cipher += cipher.final( 'base64');暗号を返します。 }、decrypt:function(encrypt_text、iv){var key = new Buffer(key); var iv = new Buffer(iv?iv:0); var decipher = crypto.createdecipheriv(this.algorithm.ecb、key、iv); decipher.setautopadding(true); var txt = decipher.update(encrypt_text、 'base64'、 'utf8'); txt += decipher.final( 'utf8'); txtを返します。 }};暗号化と復号化法を使用します
// encrypt var cryptutil = require( "./ utils/crypt"); var str = "/upload/image/201602120012.jpg"; var encrypt_text = cryptutil.des.encrypt(str、0); var decrypt_text = craptutil.des.decrypt(encrypt_text、0); console.log(conrypt_text); console.log(decrypt_text);
出力結果:
I+QWOSXQVBQ18KVMX3IANOMHBS3NT+V64S
/upload/image/201602120012.jpg
上記のnode.js des暗号化の簡単な実装は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。