{"id":792,"date":"2024-12-27T13:22:44","date_gmt":"2024-12-27T05:22:44","guid":{"rendered":"https:\/\/www.ikaros.love\/?p=792"},"modified":"2024-12-27T13:22:44","modified_gmt":"2024-12-27T05:22:44","slug":"%e9%9d%9e%e5%af%b9%e7%a7%b0%e5%8a%a0%e5%af%86","status":"publish","type":"post","link":"https:\/\/www.ikaros.love\/?p=792","title":{"rendered":"\u975e\u5bf9\u79f0\u52a0\u5bc6"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"412\" height=\"412\" src=\"https:\/\/www.ikaros.love\/wp-content\/uploads\/2024\/12\/234.png\" alt=\"\" class=\"wp-image-793\" srcset=\"https:\/\/www.ikaros.love\/wp-content\/uploads\/2024\/12\/234.png 412w, https:\/\/www.ikaros.love\/wp-content\/uploads\/2024\/12\/234-300x300.png 300w, https:\/\/www.ikaros.love\/wp-content\/uploads\/2024\/12\/234-150x150.png 150w, https:\/\/www.ikaros.love\/wp-content\/uploads\/2024\/12\/234-200x200.png 200w\" sizes=\"(max-width: 412px) 100vw, 412px\" \/><\/figure>\n\n\n\n<p>\u4eceDH\u7b97\u6cd5\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0c\u516c\u94a5-\u79c1\u94a5\u7ec4\u6210\u7684\u5bc6\u94a5\u5bf9\u662f\u975e\u5e38\u6709\u7528\u7684\u52a0\u5bc6\u65b9\u5f0f\uff0c\u56e0\u4e3a\u516c\u94a5\u662f\u53ef\u4ee5\u516c\u5f00\u7684\uff0c\u800c\u79c1\u94a5\u662f\u5b8c\u5168\u4fdd\u5bc6\u7684\uff0c\u7531\u6b64\u5960\u5b9a\u4e86\u975e\u5bf9\u79f0\u52a0\u5bc6\u7684\u57fa\u7840\u3002<\/p>\n\n\n\n<p>\u975e\u5bf9\u79f0\u52a0\u5bc6\u5c31\u662f\u52a0\u5bc6\u548c\u89e3\u5bc6\u4f7f\u7528\u7684\u4e0d\u662f\u76f8\u540c\u7684\u5bc6\u94a5\uff1a\u53ea\u6709\u540c\u4e00\u4e2a\u516c\u94a5-\u79c1\u94a5\u5bf9\u624d\u80fd\u6b63\u5e38\u52a0\u89e3\u5bc6\u3002<\/p>\n\n\n\n<p>\u56e0\u6b64\uff0c\u5982\u679c\u5c0f\u660e\u8981\u52a0\u5bc6\u4e00\u4e2a\u6587\u4ef6\u53d1\u9001\u7ed9\u5c0f\u7ea2\uff0c\u4ed6\u5e94\u8be5\u9996\u5148\u5411\u5c0f\u7ea2\u7d22\u53d6\u5979\u7684\u516c\u94a5\uff0c\u7136\u540e\uff0c\u4ed6\u7528\u5c0f\u7ea2\u7684\u516c\u94a5\u52a0\u5bc6\uff0c\u628a\u52a0\u5bc6\u6587\u4ef6\u53d1\u9001\u7ed9\u5c0f\u7ea2\uff0c\u6b64\u6587\u4ef6\u53ea\u80fd\u7531\u5c0f\u7ea2\u7684\u79c1\u94a5\u89e3\u5f00\uff0c\u56e0\u4e3a\u5c0f\u7ea2\u7684\u79c1\u94a5\u5728\u5979\u81ea\u5df1\u624b\u91cc\uff0c\u6240\u4ee5\uff0c\u9664\u4e86\u5c0f\u7ea2\uff0c\u6ca1\u6709\u4efb\u4f55\u4eba\u80fd\u89e3\u5f00\u6b64\u6587\u4ef6\u3002<\/p>\n\n\n\n<p>\u975e\u5bf9\u79f0\u52a0\u5bc6\u7684\u5178\u578b\u7b97\u6cd5\u5c31\u662fRSA\u7b97\u6cd5\uff0c\u5b83\u662f\u7531Ron Rivest\uff0cAdi Shamir\uff0cLeonard Adleman\u8fd9\u4e09\u4e2a\u54e5\u4eec\u4e00\u8d77\u53d1\u660e\u7684\uff0c\u6240\u4ee5\u7528\u4ed6\u4eec\u4ee8\u7684\u59d3\u7684\u9996\u5b57\u6bcd\u7f29\u5199\u8868\u793a\u3002<\/p>\n\n\n\n<p>\u975e\u5bf9\u79f0\u52a0\u5bc6\u76f8\u6bd4\u5bf9\u79f0\u52a0\u5bc6\u7684\u663e\u8457\u4f18\u70b9\u5728\u4e8e\uff0c\u5bf9\u79f0\u52a0\u5bc6\u9700\u8981\u534f\u5546\u5bc6\u94a5\uff0c\u800c\u975e\u5bf9\u79f0\u52a0\u5bc6\u53ef\u4ee5\u5b89\u5168\u5730\u516c\u5f00\u5404\u81ea\u7684\u516c\u94a5\uff0c\u5728N\u4e2a\u4eba\u4e4b\u95f4\u901a\u4fe1\u7684\u65f6\u5019\uff1a\u4f7f\u7528\u975e\u5bf9\u79f0\u52a0\u5bc6\u53ea\u9700\u8981N\u4e2a\u5bc6\u94a5\u5bf9\uff0c\u6bcf\u4e2a\u4eba\u53ea\u7ba1\u7406\u81ea\u5df1\u7684\u5bc6\u94a5\u5bf9\u3002\u800c\u4f7f\u7528\u5bf9\u79f0\u52a0\u5bc6\u9700\u8981\u5219\u9700\u8981<code>N*(N-1)\/2<\/code>\u4e2a\u5bc6\u94a5\uff0c\u56e0\u6b64\u6bcf\u4e2a\u4eba\u9700\u8981\u7ba1\u7406<code>N-1<\/code>\u4e2a\u5bc6\u94a5\uff0c\u5bc6\u94a5\u7ba1\u7406\u96be\u5ea6\u5927\uff0c\u800c\u4e14\u975e\u5e38\u5bb9\u6613\u6cc4\u6f0f\u3002<\/p>\n\n\n\n<p>\u65e2\u7136\u975e\u5bf9\u79f0\u52a0\u5bc6\u8fd9\u4e48\u597d\uff0c\u90a3\u6211\u4eec\u629b\u5f03\u5bf9\u79f0\u52a0\u5bc6\uff0c\u5b8c\u5168\u4f7f\u7528\u975e\u5bf9\u79f0\u52a0\u5bc6\u884c\u4e0d\u884c\uff1f\u4e5f\u4e0d\u884c\u3002\u56e0\u4e3a\u975e\u5bf9\u79f0\u52a0\u5bc6\u7684\u7f3a\u70b9\u5c31\u662f\u8fd0\u7b97\u901f\u5ea6\u975e\u5e38\u6162\uff0c\u6bd4\u5bf9\u79f0\u52a0\u5bc6\u8981\u6162\u5f88\u591a\u3002<\/p>\n\n\n\n<p>\u6240\u4ee5\uff0c\u5728\u5b9e\u9645\u5e94\u7528\u7684\u65f6\u5019\uff0c\u975e\u5bf9\u79f0\u52a0\u5bc6\u603b\u662f\u548c\u5bf9\u79f0\u52a0\u5bc6\u4e00\u8d77\u4f7f\u7528\u3002\u5047\u8bbe\u5c0f\u660e\u9700\u8981\u7ed9\u5c0f\u7ea2\u9700\u8981\u4f20\u8f93\u52a0\u5bc6\u6587\u4ef6\uff0c\u4ed6\u4fe9\u9996\u5148\u4ea4\u6362\u4e86\u5404\u81ea\u7684\u516c\u94a5\uff0c\u7136\u540e\uff1a<\/p>\n\n\n\n<ol>\n<li>\u5c0f\u660e\u751f\u6210\u4e00\u4e2a\u968f\u673a\u7684AES\u53e3\u4ee4\uff0c\u7136\u540e\u7528\u5c0f\u7ea2\u7684\u516c\u94a5\u901a\u8fc7RSA\u52a0\u5bc6\u8fd9\u4e2a\u53e3\u4ee4\uff0c\u5e76\u53d1\u7ed9\u5c0f\u7ea2\uff1b<\/li>\n\n\n\n<li>\u5c0f\u7ea2\u7528\u81ea\u5df1\u7684RSA\u79c1\u94a5\u89e3\u5bc6\u5f97\u5230AES\u53e3\u4ee4\uff1b<\/li>\n\n\n\n<li>\u53cc\u65b9\u4f7f\u7528\u8fd9\u4e2a\u5171\u4eab\u7684AES\u53e3\u4ee4\u7528AES\u52a0\u5bc6\u901a\u4fe1\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u53ef\u89c1\u975e\u5bf9\u79f0\u52a0\u5bc6\u5b9e\u9645\u4e0a\u5e94\u7528\u5728\u7b2c\u4e00\u6b65\uff0c\u5373\u52a0\u5bc6\u201cAES\u53e3\u4ee4\u201d\u3002\u8fd9\u4e5f\u662f\u6211\u4eec\u5728\u6d4f\u89c8\u5668\u4e2d\u5e38\u7528\u7684HTTPS\u534f\u8bae\u7684\u505a\u6cd5\uff0c\u5373\u6d4f\u89c8\u5668\u548c\u670d\u52a1\u5668\u5148\u901a\u8fc7RSA\u4ea4\u6362AES\u53e3\u4ee4\uff0c\u63a5\u4e0b\u6765\u53cc\u65b9\u901a\u4fe1\u5b9e\u9645\u4e0a\u91c7\u7528\u7684\u662f\u901f\u5ea6\u8f83\u5feb\u7684AES\u5bf9\u79f0\u52a0\u5bc6\uff0c\u800c\u4e0d\u662f\u7f13\u6162\u7684RSA\u975e\u5bf9\u79f0\u52a0\u5bc6\u3002<\/p>\n\n\n\n<p>Java\u6807\u51c6\u5e93\u63d0\u4f9b\u4e86RSA\u7b97\u6cd5\u7684\u5b9e\u73b0\uff0c\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.security.*;\nimport javax.crypto.Cipher;\nimport java.util.HexFormat;\n\npublic class Main {\n    public static void main(String&#91;] args) throws Exception {\n        \/\/ \u660e\u6587:\n        byte&#91;] plain = \"Hello, encrypt use RSA\".getBytes(\"UTF-8\");\n        \/\/ \u521b\u5efa\u516c\u94a5\uff0f\u79c1\u94a5\u5bf9:\n        Person alice = new Person(\"Alice\");\n        \/\/ \u7528Alice\u7684\u516c\u94a5\u52a0\u5bc6:\n        byte&#91;] pk = alice.getPublicKey();\n        System.out.println(\"public key: \" + HexFormat.of().formatHex(pk));\n        byte&#91;] encrypted = alice.encrypt(plain);\n        System.out.println(\"encrypted: \" + HexFormat.of().formatHex(encrypted));\n        \/\/ \u7528Alice\u7684\u79c1\u94a5\u89e3\u5bc6:\n        byte&#91;] sk = alice.getPrivateKey();\n        System.out.println(\"private key: \" + HexFormat.of().formatHex(sk));\n        byte&#91;] decrypted = alice.decrypt(encrypted);\n        System.out.println(new String(decrypted, \"UTF-8\"));\n    }\n}\n\nclass Person {\n    String name;\n    \/\/ \u79c1\u94a5:\n    PrivateKey sk;\n    \/\/ \u516c\u94a5:\n    PublicKey pk;\n\n    public Person(String name) throws GeneralSecurityException {\n        this.name = name;\n        \/\/ \u751f\u6210\u516c\u94a5\uff0f\u79c1\u94a5\u5bf9:\n        KeyPairGenerator kpGen = KeyPairGenerator.getInstance(\"RSA\");\n        kpGen.initialize(1024);\n        KeyPair kp = kpGen.generateKeyPair();\n        this.sk = kp.getPrivate();\n        this.pk = kp.getPublic();\n    }\n\n    \/\/ \u628a\u79c1\u94a5\u5bfc\u51fa\u4e3a\u5b57\u8282\n    public byte&#91;] getPrivateKey() {\n        return this.sk.getEncoded();\n    }\n\n    \/\/ \u628a\u516c\u94a5\u5bfc\u51fa\u4e3a\u5b57\u8282\n    public byte&#91;] getPublicKey() {\n        return this.pk.getEncoded();\n    }\n\n    \/\/ \u7528\u516c\u94a5\u52a0\u5bc6:\n    public byte&#91;] encrypt(byte&#91;] message) throws GeneralSecurityException {\n        Cipher cipher = Cipher.getInstance(\"RSA\");\n        cipher.init(Cipher.ENCRYPT_MODE, this.pk);\n        return cipher.doFinal(message);\n    }\n\n    \/\/ \u7528\u79c1\u94a5\u89e3\u5bc6:\n    public byte&#91;] decrypt(byte&#91;] input) throws GeneralSecurityException {\n        Cipher cipher = Cipher.getInstance(\"RSA\");\n        cipher.init(Cipher.DECRYPT_MODE, this.sk);\n        return cipher.doFinal(input);\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>RSA\u7684\u516c\u94a5\u548c\u79c1\u94a5\u90fd\u53ef\u4ee5\u901a\u8fc7<code>getEncoded()<\/code>\u65b9\u6cd5\u83b7\u5f97\u4ee5<code>byte[]<\/code>\u8868\u793a\u7684\u4e8c\u8fdb\u5236\u6570\u636e\uff0c\u5e76\u6839\u636e\u9700\u8981\u4fdd\u5b58\u5230\u6587\u4ef6\u4e2d\u3002\u8981\u4ece<code>byte[]<\/code>\u6570\u7ec4\u6062\u590d\u516c\u94a5\u6216\u79c1\u94a5\uff0c\u53ef\u4ee5\u8fd9\u4e48\u5199\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>byte&#91;] pkData = ...\nbyte&#91;] skData = ...\nKeyFactory kf = KeyFactory.getInstance(\"RSA\");\n\/\/ \u6062\u590d\u516c\u94a5:\nX509EncodedKeySpec pkSpec = new X509EncodedKeySpec(pkData);\nPublicKey pk = kf.generatePublic(pkSpec);\n\/\/ \u6062\u590d\u79c1\u94a5:\nPKCS8EncodedKeySpec skSpec = new PKCS8EncodedKeySpec(skData);\nPrivateKey sk = kf.generatePrivate(skSpec);\n<\/code><\/pre>\n\n\n\n<p>\u4ee5RSA\u7b97\u6cd5\u4e3a\u4f8b\uff0c\u5b83\u7684\u5bc6\u94a5\u6709256\/512\/1024\/2048\/4096\u7b49\u4e0d\u540c\u7684\u957f\u5ea6\u3002\u957f\u5ea6\u8d8a\u957f\uff0c\u5bc6\u7801\u5f3a\u5ea6\u8d8a\u5927\uff0c\u5f53\u7136\u8ba1\u7b97\u901f\u5ea6\u4e5f\u8d8a\u6162\u3002<\/p>\n\n\n\n<p>\u5982\u679c\u4fee\u6539\u5f85\u52a0\u5bc6\u7684<code>byte[]<\/code>\u6570\u636e\u7684\u5927\u5c0f\uff0c\u53ef\u4ee5\u53d1\u73b0\uff0c\u4f7f\u7528512bit\u7684RSA\u52a0\u5bc6\u65f6\uff0c\u660e\u6587\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc753\u5b57\u8282\uff0c\u4f7f\u75281024bit\u7684RSA\u52a0\u5bc6\u65f6\uff0c\u660e\u6587\u957f\u5ea6\u4e0d\u80fd\u8d85\u8fc7117\u5b57\u8282\uff0c\u8fd9\u4e5f\u662f\u4e3a\u4ec0\u4e48\u4f7f\u7528RSA\u7684\u65f6\u5019\uff0c\u603b\u662f\u914d\u5408AES\u4e00\u8d77\u4f7f\u7528\uff0c\u5373\u7528AES\u52a0\u5bc6\u4efb\u610f\u957f\u5ea6\u7684\u660e\u6587\uff0c\u7528RSA\u52a0\u5bc6AES\u53e3\u4ee4\u3002<\/p>\n\n\n\n<p>\u6b64\u5916\uff0c\u53ea\u4f7f\u7528\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u4e0d\u80fd\u9632\u6b62\u4e2d\u95f4\u4eba\u653b\u51fb\u3002<\/p>\n\n\n\n<p>RSA\u52a0\u5bc6\u5177\u4f53\u7b97\u6cd5<\/p>\n\n\n\n<p>RSA \u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u662f\u4e00\u79cd\u516c\u94a5\u52a0\u5bc6\u6280\u672f\uff0c\u7531 Ron Rivest\u3001Adi Shamir \u548c Leonard Adleman \u57281977\u5e74\u63d0\u51fa\u3002\u5b83\u57fa\u4e8e\u5927\u6574\u6570\u5206\u89e3\u7684\u56f0\u96be\u6027\u3002\u4ee5\u4e0b\u662f RSA \u52a0\u5bc6\u7b97\u6cd5\u7684\u57fa\u672c\u6b65\u9aa4\uff1a<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5bc6\u94a5\u751f\u6210<\/h3>\n\n\n\n<ol>\n<li><strong>\u9009\u62e9\u4e24\u4e2a\u5927\u7d20\u6570 p \u548c q<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul>\n<li>\u8fd9\u4e24\u4e2a\u7d20\u6570\u9700\u8981\u8db3\u591f\u5927\uff08\u901a\u5e38\u662f\u51e0\u767e\u4f4d\u5230\u4e0a\u5343\u4f4d\uff09\uff0c\u4ee5\u786e\u4fdd\u5b89\u5168\u6027\u3002<\/li>\n<\/ul>\n\n\n\n<ol>\n<li><strong>\u8ba1\u7b97 n = p * q<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul>\n<li>n \u662f\u516c\u94a5\u548c\u79c1\u94a5\u7684\u4e00\u90e8\u5206\uff0c\u901a\u5e38\u88ab\u79f0\u4e3a\u6a21\u6570\u3002<\/li>\n<\/ul>\n\n\n\n<ol>\n<li><strong>\u8ba1\u7b97 \u03c6(n) = (p-1) * (q-1)<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul>\n<li>\u03c6(n) \u662f\u6b27\u62c9\u51fd\u6570\uff0c\u7528\u4e8e\u786e\u5b9a\u4e0e n \u4e92\u8d28\u7684\u6574\u6570\u4e2a\u6570\u3002<\/li>\n<\/ul>\n\n\n\n<ol>\n<li><strong>\u9009\u62e9\u4e00\u4e2a\u6574\u6570 e<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul>\n<li>e \u662f\u516c\u94a5\u7684\u4e00\u90e8\u5206\uff0c\u9700\u8981\u6ee1\u8db3 1 &lt; e &lt; \u03c6(n)\uff0c\u4e14 e \u4e0e \u03c6(n) \u4e92\u8d28\uff08\u5373 gcd(e, \u03c6(n)) = 1\uff09\u3002<\/li>\n<\/ul>\n\n\n\n<ol>\n<li><strong>\u8ba1\u7b97 d<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul>\n<li>d \u662f\u79c1\u94a5\u7684\u4e00\u90e8\u5206\uff0c\u662f e \u5173\u4e8e \u03c6(n) \u7684\u6a21\u9006\u5143\uff0c\u5373 (d * e) % \u03c6(n) = 1\u3002<\/li>\n\n\n\n<li>\u53ef\u4ee5\u4f7f\u7528\u6269\u5c55\u6b27\u51e0\u91cc\u5f97\u7b97\u6cd5\u6765\u8ba1\u7b97 d\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u516c\u94a5\u548c\u79c1\u94a5<\/h3>\n\n\n\n<ul>\n<li><strong>\u516c\u94a5<\/strong>\uff1a(e, n)<\/li>\n\n\n\n<li><strong>\u79c1\u94a5<\/strong>\uff1a(d, n)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u52a0\u5bc6\u8fc7\u7a0b<\/h3>\n\n\n\n<p>\u5047\u8bbe\u53d1\u9001\u65b9\u60f3\u8981\u52a0\u5bc6\u4e00\u6761\u6d88\u606f M\uff08\u5176\u4e2d M &lt; n\uff09\uff0c\u52a0\u5bc6\u8fc7\u7a0b\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ol>\n<li>\u5c06\u660e\u6587 M \u8f6c\u6362\u4e3a\u6574\u6570\u5f62\u5f0f\uff08\u5982\u679c M \u4e0d\u662f\u6574\u6570\uff0c\u53ef\u4ee5\u5148\u8fdb\u884c\u7f16\u7801\u8f6c\u6362\uff09\u3002<\/li>\n\n\n\n<li>\u8ba1\u7b97\u5bc6\u6587 C\uff1a<br><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"265\" height=\"60\" src=\"https:\/\/www.ikaros.love\/wp-content\/uploads\/2024\/12\/image-112.png\" alt=\"\" class=\"wp-image-794\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u89e3\u5bc6\u8fc7\u7a0b<\/h3>\n\n\n\n<p>\u63a5\u6536\u65b9\u4f7f\u7528\u79c1\u94a5 (d, n) \u6765\u89e3\u5bc6\u5bc6\u6587 C\uff1a<\/p>\n\n\n\n<ol>\n<li>\u8ba1\u7b97\u660e\u6587 M\uff1a<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"253\" height=\"69\" src=\"https:\/\/www.ikaros.love\/wp-content\/uploads\/2024\/12\/image-113.png\" alt=\"\" class=\"wp-image-795\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u5b89\u5168\u6027\u57fa\u7840<\/h3>\n\n\n\n<p>RSA \u7b97\u6cd5\u7684\u5b89\u5168\u6027\u4e3b\u8981\u57fa\u4e8e\u5927\u6574\u6570\u5206\u89e3\u7684\u56f0\u96be\u6027\u3002\u653b\u51fb\u8005\u9700\u8981\u77e5\u9053\u79c1\u94a5 (d, n) \u624d\u80fd\u89e3\u5bc6\u5bc6\u6587\uff0c\u800c\u8981\u8ba1\u7b97\u79c1\u94a5\uff0c\u5fc5\u987b\u5148\u5206\u89e3\u51fa\u6a21\u6570 n \u7684\u4e24\u4e2a\u7d20\u56e0\u5b50 p \u548c q\u3002\u5bf9\u4e8e\u8db3\u591f\u5927\u7684 n\uff0c\u8fd9\u79cd\u5206\u89e3\u51e0\u4e4e\u662f\u4e0d\u53ef\u80fd\u5728\u5408\u7406\u65f6\u95f4\u5185\u5b8c\u6210\u7684\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5b9e\u9645\u5e94\u7528\u4e2d\u7684\u6ce8\u610f\u4e8b\u9879<\/h3>\n\n\n\n<ul>\n<li><strong>\u5bc6\u94a5\u957f\u5ea6<\/strong>\uff1a\u4e3a\u4e86\u4fdd\u8bc1\u5b89\u5168\u6027\uff0c\u901a\u5e38\u5efa\u8bae\u4f7f\u7528\u81f3\u5c11 2048 \u4f4d\u7684\u5bc6\u94a5\u957f\u5ea6\u3002<\/li>\n\n\n\n<li><strong>\u586b\u5145\u65b9\u6848<\/strong>\uff1a\u5b9e\u9645\u5e94\u7528\u4e2d\uff0c\u901a\u5e38\u4f1a\u5bf9\u660e\u6587\u8fdb\u884c\u586b\u5145\u5904\u7406\uff08\u5982 PKCS#1 v1.5 \u6216 OAEP \u586b\u5145\uff09\uff0c\u4ee5\u589e\u5f3a\u5b89\u5168\u6027\u3002<\/li>\n\n\n\n<li><strong>\u6027\u80fd\u4f18\u5316<\/strong>\uff1aRSA \u52a0\u5bc6\u548c\u89e3\u5bc6\u64cd\u4f5c\u76f8\u5bf9\u8f83\u6162\uff0c\u56e0\u6b64\u5728\u5b9e\u9645\u5e94\u7528\u4e2d\uff0c\u5e38\u7ed3\u5408\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u4f7f\u7528\uff0c\u4f8b\u5982\u901a\u8fc7 RSA \u52a0\u5bc6\u5bf9\u79f0\u5bc6\u94a5\uff0c\u518d\u7528\u5bf9\u79f0\u5bc6\u94a5\u52a0\u5bc6\u6570\u636e\uff0c\u4ee5\u63d0\u9ad8\u6548\u7387\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u4ee5\u4e0a\u5c31\u662f RSA \u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u7684\u57fa\u672c\u5b9e\u73b0\u6d41\u7a0b\u548c\u539f\u7406\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4eceDH\u7b97\u6cd5\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0c\u516c\u94a5-\u79c1&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":793,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[208,207],"_links":{"self":[{"href":"https:\/\/www.ikaros.love\/index.php?rest_route=\/wp\/v2\/posts\/792"}],"collection":[{"href":"https:\/\/www.ikaros.love\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ikaros.love\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ikaros.love\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ikaros.love\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=792"}],"version-history":[{"count":1,"href":"https:\/\/www.ikaros.love\/index.php?rest_route=\/wp\/v2\/posts\/792\/revisions"}],"predecessor-version":[{"id":796,"href":"https:\/\/www.ikaros.love\/index.php?rest_route=\/wp\/v2\/posts\/792\/revisions\/796"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ikaros.love\/index.php?rest_route=\/wp\/v2\/media\/793"}],"wp:attachment":[{"href":"https:\/\/www.ikaros.love\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=792"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ikaros.love\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=792"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ikaros.love\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}