非対称暗号化アルゴリズム(公開鍵と秘密鍵)

非対称暗号化アルゴリズムでは、暗号化と復号化に2つのキーが必要です。2つのキーは、公開キー(公開キーと呼ばれる公開キー)と秘密キー(秘密キーと呼ばれる秘密キー)です。

公開鍵と秘密鍵は、アルゴリズムによって取得された鍵のペア(つまり、公開鍵と秘密鍵)です。公開鍵は鍵ペアの公開部分であり、秘密鍵は非公開部分です。公開鍵は通常、セッション鍵の暗号化、デジタル署名の検証、または対応する秘密鍵で復号化できるデータの暗号化に使用されます。このアルゴリズムによって取得されたキーペアは、世界で一意であることが保証されます。このキーペアを使用するときに、一方のキーを使用してデータを暗号化する場合は、もう一方のキーを使用してデータを復号化する必要があります。たとえば、公開鍵を使用してデータを暗号化する場合は、秘密鍵を使用してデータを復号化する必要があります。秘密鍵を使用してデータを暗号化する場合は、公開鍵を使用してデータを復号化する必要があります。そうしないと、復号化が成功しません。 。(ここにBaidu百科事典のエントリの説明を引用しました

使い方を話しましょう。
最初にページjsencryptファイルで紹介されました(CDNアクセラレーションを使用できます)
次に、鍵生成ツールを使用して公開鍵と秘密鍵(推奨される暗号化および復号化ツールを生成できます
(ps:公開鍵と秘密鍵)キーは、キー生成ツールを使用して生成できます):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/jsencrypt/2.3.1/jsencrypt.js"></script>
</head>
<body>
    <script>
        var public_key = "-----BEGIN PUBLIC KEY-----" +
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD3OhpxaOoSpObJ3CXh31T1kE5I"+
"b5DfCUB59vX7fxliFDEIknR1nkAk+YQltVF/RIcaoT8ni/NGBUJxp19nojpLUes2"+
"kqaVo5H8F7WOw2okHwtCGGEb+MMol11qCKG1nGl7cZtEu+2T/O1A4wYzvg6XUsXJ"+
"+HPnc2/15D410bK94QIDAQAB" + 
"-----END PUBLIC KEY-----";
        var private_key = "-----BEGIN PRIVATE KEY-----" +
"MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAPc6GnFo6hKk5snc" +
"JeHfVPWQTkhvkN8JQHn29ft/GWIUMQiSdHWeQCT5hCW1UX9EhxqhPyeL80YFQnGn" +
"X2eiOktR6zaSppWjkfwXtY7DaiQfC0IYYRv4wyiXXWoIobWcaXtxm0S77ZP87UDj" +
"BjO+DpdSxcn4c+dzb/XkPjXRsr3hAgMBAAECgYB3/nKRMwvRaso9laWpYN16psTo" +
"MYZOSs5JpE01+TWXvhcigvsVj26ww46ZQs1AiUFN8o+VoT69cJYUVdlfkoTZz7nc" +
"a8aH/8CVjEANjD8DGmzOJJIFpWXP0wMYta09SdCGKnKbmmlDX1MHAauA7oZy81gy" +
"8Di0DTfTLv3oW4YCBQJBAP5OfbZOorq7sPElk+W/oJhn5kf5Ym5QZc2KlpOKSTw4" +
"uUIBoA//PbdpVTzz9UJSQF/D6sgLBCeDnd6OGg368pcCQQD434s1Bnbc45xTEC/R" +
"zorB8eD3QHDIfrXfaLTy+KPPaGUP9QUu+m9YMQwVsYSW7UzRhKqPQjsgHFbO9eXx" +
"nvpHAkEArK7z4lWnXpGQ508TDNGA5by3vGv1kN77IgVXljwy2rfR5KZh4Dr7142p" +
"Gci25CAiImVRCiGg4owXKUbpHlEnZQJBAMsvpzW5e13ILp7aPlBq8np5ghQbdnka" +
"il5F3EXqncL+FlS61GqQaEt2b8leT0PxpaABUkb36dHDkVQTCpMEGo0CQERzIpg1" +
"F1uePVCsDQcRJ3TZ6CKeRsWzJUmuz10s+v8wIKzN1Dxtyok4qEDAemR81LJPsldw" +
"9SocEoKudNJ4NLA=" +
"-----END PRIVATE KEY-----";

        // 采用公钥进行加密
        var encrypt = new JSEncrypt();
        encrypt.setPublicKey(public_key);
        var encrypted = encrypt.encrypt('世上无难事,只怕有心人'); // 加密
        console.log(encrypted);

        // 采用私钥进行解密
        var decrypt = new JSEncrypt();
        decrypt.setPrivateKey(private_key);
        var uncrypted = decrypt.decrypt(encrypted); // 解密
        console.log(uncrypted)
    </script>
</body>
</html>

おすすめ

転載: blog.csdn.net/qq_43248623/article/details/108419464