Base64+DES加密/解密实战演练

这篇文章我们来看一下Base64+DES加密/解密实战演练。
关于DES加密/解密可以参考我的另一篇博客DES加密/解密。

首先,我们设置一个key,

String key = "abcdefghijkl123456@#";

然后我们取前8个字节,得到最终的key(注意,使用DES必须这么做)

byte[] finalKey = new byte[8];
System.arraycopy(key.getBytes(), 0, finalKey, 0, 8);

接着,我们再封装两个方法,分别对应数据加密和数据解密,

    /**
     * 数据加密:DES加密--->Base64加密
     * @param requestBody  请求body
     * @return  加密后的请求body
     */
    public String getEncodeRequestBody(byte[] requestBody) {
        byte[] desRequestBody = DES.encryptDES(requestBody, finalKey);
        if (desRequestBody == null) {
            return null;
        }
        String encodeRequestBody = new String(Base64.encode(desRequestBody, Base64.DEFAULT)).replace("\n", "");
        return encodeRequestBody;
    }
   /**
     * 数据解密:Base64解密--->DES解密
     * @param responseBody  应答body
     * @return  解密后的应答body
     */
    public String getDecodeResponseBody(String responseBody) {
        byte[] base64ResponseBody = Base64.decode(responseBody, Base64.DEFAULT);
        byte[] desResponseBody = DES.decryptDES(base64ResponseBody, finalKey);
        String decodeResponseBody = new String(desResponseBody);
        return decodeResponseBody;
    }

这里我使用的是Android中的Base64(android.util.Base64)。
然后我们把getEncodeRequestBody得到的结果作为最终的请求体传给服务端,并且把服务端给我们的数据
经过getDecodeResponseBody得到的结果进行解析。

你可能感兴趣的:(Java)