目次
前書き
暗号化および復号化メソッド
入門例
ホームページ ウェブフロントエンド jsチュートリアル Node.js での非対称暗号化のコード例

Node.js での非対称暗号化のコード例

Jun 09, 2018 am 10:51 AM
node.js 非対称暗号化

この記事では主に Node.js の非対称暗号化方法とコード例を共有します。これに興味のある友人は参照してください。

前書き

SegmentFault で兄弟が提起した「非対称復号エラー」という質問に答えました。これは Node.js のセキュリティ アプリケーションであり、回答された質問に基づいて、多くの人が同じ問題に遭遇しているはずです。

非対称暗号化の理論的な知識については、著者の以前の記事「NODEJS Advanced: Theory of CRYPTO Module」を参照してください。

完全なコードは「Nodejs Learning Notes」にあります。また、プログラマー Xiaoka の GitHub をフォローすることもできます。

暗号化および復号化メソッド

Node.js では、セキュリティを担当するモジュールは crypto です。非対称暗号化における公開鍵暗号化、秘密鍵復号化、および対応する暗号化・復号化APIは以下のとおりです。

暗号化関数:

crypto.publicEncrypt(key, buffer)
ログイン後にコピー

復号化関数:

crypto.privateDecrypt(privateKey, buffer)
ログイン後にコピー

入門例

次の utils.js

// utils.js
const crypto = require('crypto');
// 加密方法
exports.encrypt = (data, key) => {
 // 注意,第二个参数是Buffer类型
 return crypto.publicEncrypt(key, Buffer.from(data));
};
// 解密方法
exports.decrypt = (encrypted, key) => {
 // 注意,encrypted是Buffer类型
 return crypto.privateDecrypt(key, encrypted);
};
ログイン後にコピー

テスト コード app.js があるとします。

const utils = require('./utils');
const keys = require('./keys');
const plainText = '你好,我是程序猿小卡';
const crypted = utils.encrypt(plainText, keys.pubKey); // 加密
const decrypted = utils.decrypt(crypted, keys.privKey); // 解密
console.log(decrypted.toString()); // 你好,我是程序猿小卡
ログイン後にコピー

公開鍵と秘密鍵の key.js を添付します。

exports.privKey = `-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDFWnl8fChyKI/Tgo1ILB+IlGr8ZECKnnO8XRDwttBbf5EmG0qV
8gs0aGkh649rb75I+tMu2JSNuVj61CncL/7Ct2kAZ6CZZo1vYgtzhlFnxd4V7Ra+
aIwLZaXT/h3eE+/cFsL4VAJI5wXh4Mq4Vtu7uEjeogAOgXACaIqiFyrk3wIDAQAB
AoGBAKdrunYlqfY2fNUVAqAAdnvaVOxqa+psw4g/d3iNzjJhBRTLwDl2TZUXImEZ
QeEFueqVhoROTa/xVg/r3tshiD/QC71EfmPVBjBQJJIvJUbjtZJ/O+L2WxqzSvqe
wzYaTm6Te3kZeG/cULNMIL+xU7XsUmslbGPAurYmHA1jNKFpAkEA48aUogSv8VFn
R2QuYmilz20LkCzffK2aq2+9iSz1ZjCvo+iuFt71Y3+etWomzcZCuJ5sn0w7lcSx
nqyzCFDspQJBAN3O2VdQF3gua0Q5VHmK9AvsoXLmCfRa1RiKuFOtrtC609RfX4DC
FxDxH09UVu/8Hmdau8t6OFExcBriIYJQwDMCQQCZLjFDDHfuiFo2js8K62mnJ6SB
H0xlIrND2+/RUuTuBov4ZUC+rM7GTUtEodDazhyM4C4Yq0HfJNp25Zm5XALpAkBG
atLpO04YI3R+dkzxQUH1PyyKU6m5X9TjM7cNKcikD4wMkjK5p+S2xjYQc1AeZEYq
vc187dJPRIi4oC3PN1+tAkBuW51/5vBj+zmd73mVcTt28OmSKOX6kU29F0lvEh8I
oHiLOo285vG5ZtmXiY58tAiPVQXa7eU8hPQHTHWa9qp6
-----END RSA PRIVATE KEY-----
`;
exports.pubKey = `-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFWnl8fChyKI/Tgo1ILB+IlGr8
ZECKnnO8XRDwttBbf5EmG0qV8gs0aGkh649rb75I+tMu2JSNuVj61CncL/7Ct2kA
Z6CZZo1vYgtzhlFnxd4V7Ra+aIwLZaXT/h3eE+/cFsL4VAJI5wXh4Mq4Vtu7uEje
ogAOgXACaIqiFyrk3wIDAQAB
-----END PUBLIC KEY-----
`;
ログイン後にコピー

以上、皆様のお役に立てれば幸いです。

関連記事:

WeChatアプレットに画像プレビュー機能を実装する方法

vueを使用してBaidu統計を実装する方法

WeChatアプレットを使用してMUI数値入力ボックス効果を実装する方法

Vueでレンダリングする 関数の基本的な使い方(詳細なチュートリアル)

WeChatミニプログラムでギャラリースライダーコンポーネントを使用する方法

スクロールビューコンポーネントを使用してWeChatミニプログラムでスクロールアニメーションを実装する方法

関連WeChatミニプログラムでのチェックボックスコンポーネントの使用

以上がNode.js での非対称暗号化のコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Nodeのメモリ制御に関する記事 Nodeのメモリ制御に関する記事 Apr 26, 2023 pm 05:37 PM

Nodeのメモリ制御に関する記事

Node V8 エンジンのメモリと GC の詳細な図による説明 Node V8 エンジンのメモリと GC の詳細な図による説明 Mar 29, 2023 pm 06:02 PM

Node V8 エンジンのメモリと GC の詳細な図による説明

Node.js 19 が正式リリースされました。その 6 つの主要な機能についてお話しましょう。 Node.js 19 が正式リリースされました。その 6 つの主要な機能についてお話しましょう。 Nov 16, 2022 pm 08:34 PM

Node.js 19 が正式リリースされました。その 6 つの主要な機能についてお話しましょう。

Node の File モジュールについて詳しく説明しましょう Node の File モジュールについて詳しく説明しましょう Apr 24, 2023 pm 05:49 PM

Node の File モジュールについて詳しく説明しましょう

ノードがnpmコマンドを使用できない場合はどうすればよいですか? ノードがnpmコマンドを使用できない場合はどうすればよいですか? Feb 08, 2023 am 10:09 AM

ノードがnpmコマンドを使用できない場合はどうすればよいですか?

最適な Node.js Docker イメージを選択する方法について話しましょう。 最適な Node.js Docker イメージを選択する方法について話しましょう。 Dec 13, 2022 pm 08:00 PM

最適な Node.js Docker イメージを選択する方法について話しましょう。

Node.js の GC (ガベージ コレクション) メカニズムについて話しましょう Node.js の GC (ガベージ コレクション) メカニズムについて話しましょう Nov 29, 2022 pm 08:44 PM

Node.js の GC (ガベージ コレクション) メカニズムについて話しましょう

Nodeのイベントループについて話しましょう Nodeのイベントループについて話しましょう Apr 11, 2023 pm 07:08 PM

Nodeのイベントループについて話しましょう

See all articles