{"id":278,"date":"2025-07-05T11:10:20","date_gmt":"2025-07-05T03:10:20","guid":{"rendered":"https:\/\/blog.jishuge.cn\/?p=278"},"modified":"2025-07-05T11:11:20","modified_gmt":"2025-07-05T03:11:20","slug":"%e5%86%99%e4%b8%aa%e7%ae%80%e5%8d%95%e7%9a%84%e5%8a%a0%e5%af%86%e8%a7%a3%e5%af%86%e7%9a%84%e4%bc%a0%e8%be%93%e6%95%b0%e6%8d%ae","status":"publish","type":"post","link":"https:\/\/blog.jishuge.cn\/?p=278","title":{"rendered":"\u5199\u4e2a\u7b80\u5355\u7684\u52a0\u5bc6\u89e3\u5bc6\u7684\u4f20\u8f93\u6570\u636e"},"content":{"rendered":"\n<p>\u5728Android\u5f00\u53d1\u6216\u8005\u5176\u4ed6\u9700\u8981\u901a\u8baf\u7684\u8fc7\u7a0b\u4e2d\u6211\u4eec\u90fd\u559c\u6b22\u628a\u53c2\u6570\u8fdb\u884c\u52a0\u5bc6\u6765\u4fdd\u8bc1\u6570\u636e\u5728\u4f20\u8f93\u8fc7\u7a0b\u4e2d\u7684\u5b89\u5168\u3002<\/p>\n\n\n\n<p>\u8fd9\u91cc\u6211\u4eec\u7528java\u5199\u4e2a\u7b80\u5355\u7684\u5bf9\u79f0\u52a0\u5bc6\u89e3\u5bc6\u7b97\u6cd5\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">package xxx.xxx\n\nimport javax.crypto.Cipher;\nimport javax.crypto.spec.IvParameterSpec;\nimport javax.crypto.spec.SecretKeySpec;\nimport java.nio.charset.StandardCharsets;\nimport java.security.InvalidParameterException;\nimport java.security.SecureRandom;\nimport java.util.Base64;\n\n\npublic class CryptionUtil {\n\n    \/**\n     * \u5185\u5bb9\u52a0\u5bc6\n     * @param content \u9700\u8981\u52a0\u5bc6\u7684\u5185\u5bb9\n     * @param secretKey \u5bc6\u94a5\n     * @return\n     * @throws Exception\n     *\/\n    public static String encrypt(String content, String secretKey) throws Exception {\n        byte[] key = Base64.getDecoder().decode(secretKey);\n        SecretKeySpec secretKeySpec = new SecretKeySpec(key, \"AES\");\n\n        byte[] iv = new byte[16];\n        new SecureRandom().nextBytes(iv);\n        IvParameterSpec ivParameterSpec = new IvParameterSpec(iv);\n\n        Cipher cipher = Cipher.getInstance(\"AES\/CBC\/PKCS5Padding\");\n        cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);\n\n        byte[] cipherText = cipher.doFinal(content.getBytes(StandardCharsets.UTF_8));\n        String res = Base64.getEncoder().encodeToString(cipherText);\n        return String.join(\"~split~\", Base64.getEncoder().encodeToString(iv), res);\n    }\n\n    \/**\n     * \u5185\u5bb9\u89e3\u5bc6\n     * @param cipherText \u9700\u8981\u89e3\u5bc6\u7684\u5185\u5bb9\n     * @param secretKey \u89e3\u5bc6\u5bc6\u94a5\n     * @return\n     * @throws Exception\n     *\/\n    public static String decrypt(String cipherText, String secretKey) throws Exception {\n        byte[] key = Base64.getDecoder().decode(secretKey);\n        SecretKeySpec secretKeySpec = new SecretKeySpec(key, \"AES\");\n\n        String[] arr = cipherText.split(\"~split~\");\n        if (arr == null || arr.length != 2) {\n            throw new InvalidParameterException();\n        }\n        byte[] iv = Base64.getDecoder().decode(arr[0]);\n        IvParameterSpec ivParameterSpec = new IvParameterSpec(iv);\n\n        Cipher cipher = Cipher.getInstance(\"AES\/CBC\/PKCS5Padding\");\n        cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);\n\n        byte[] decryptedText = cipher.doFinal(Base64.getDecoder().decode(arr[1]));\n        return new String(decryptedText, StandardCharsets.UTF_8);\n    }\n\n\n}<\/pre>\n\n\n\n<p>\u73b0\u5728\u6211\u4eec\u7b80\u5355\u7684\u6d4b\u8bd5\u4e0b\uff1a<\/p>\n\n\n\n<p><strong>\u52a0\u5bc6<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">      \n\n        HashMap&lt;String,Object> params = new HashMap&lt;>();\n        params.put(\"id\",\"66937s9nnah2779293223hhad\");\n        params.put(\"content_type\",\"userinfo\");\n        params.put(\"title\",\"\u8fd9\u662f\u6807\u9898\");\n        params.put(\"name\",\"\u8fd9\u662f\u59d3\u540d\");\n        params.put(\"image\",\"https:\/\/blog.jishuge.cn\/avtar.jpg\");\n\n\n        try {\n            String key = \"ABCDT5F8Dgn12345\";  \/\/\u8fd9\u91cc\u662f\u5bc6\u94a5\uff0c\u52a0\u5bc6\u548c\u89e3\u5bc6\u90fd\u7528\u5230\u5b83\uff0c\u4e0d\u4f20\u8f93\n            String seceretKey = Base64.getEncoder().encodeToString(key.getBytes());\n            String encrypt = CryptionUtil.encrypt(JSONObject.toJSONString(params),seceretKey);\n            System.out.println(encrypt);\n        } catch (Exception e) {\n            throw new RuntimeException(e.getMessage());\n        }\n\n<\/pre>\n\n\n\n<p><strong>\u89e3\u5bc6<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\n        \/\/\u88ab\u52a0\u5bc6\u4e4b\u540e\u7684\u5bc6\u6587\n        String message = \"sGSCA05A9aBY0rIKwgWkEQ==~split~cRFS++NpEZGHZXW06k0p\/0l3o4Et2+PrZpr1GYx3TkO8Zj9T725bhB5OzEubwhfxEMOf67qG4U\/xXGLgXBdMGhupVpOFaLCOzHJUCuoYWbo=\";\n        String key = \"ABCDT5F8Dgn12345\";\n        String seceretKey = Base64.getEncoder().encodeToString(key.getBytes());\n        try {\n            String decrypt = CryptionUtil.decrypt(message,seceretKey);\n             System.out.println(decrypt);\n        } catch (Exception e) {\n            throw new RuntimeException(e);\n        }\n\n<\/pre>\n\n\n\n<p>\u6211\u4eec\u8fd9\u4e2a\u7b97\u6cd5\u8bbe\u7f6e\u7684\u5bc6\u94a5\u5fc5\u987b\u662f16\u4f4d\uff0c\u81ea\u5df1\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u9700\u6c42\u6765\u4fee\u6539\u5bc6\u94a5\u957f\u5ea6\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728Android\u5f00\u53d1\u6216\u8005\u5176\u4ed6\u9700\u8981\u901a\u8baf\u7684\u8fc7\u7a0b\u4e2d\u6211\u4eec\u90fd\u559c\u6b22\u628a\u53c2\u6570\u8fdb\u884c\u52a0\u5bc6\u6765\u4fdd\u8bc1\u6570\u636e\u5728\u4f20\u8f93\u8fc7\u7a0b\u4e2d\u7684\u5b89\u5168\u3002 \u8fd9\u91cc\u6211\u4eec\u7528 &hellip; <a href=\"https:\/\/blog.jishuge.cn\/?p=278\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u5199\u4e2a\u7b80\u5355\u7684\u52a0\u5bc6\u89e3\u5bc6\u7684\u4f20\u8f93\u6570\u636e<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-278","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.jishuge.cn\/index.php?rest_route=\/wp\/v2\/posts\/278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.jishuge.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jishuge.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jishuge.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jishuge.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=278"}],"version-history":[{"count":2,"href":"https:\/\/blog.jishuge.cn\/index.php?rest_route=\/wp\/v2\/posts\/278\/revisions"}],"predecessor-version":[{"id":280,"href":"https:\/\/blog.jishuge.cn\/index.php?rest_route=\/wp\/v2\/posts\/278\/revisions\/280"}],"wp:attachment":[{"href":"https:\/\/blog.jishuge.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jishuge.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jishuge.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}