欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-01 17:27:32
...

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

首先,我们设置一个key,

String key = "[email protected]#";

然后我们取前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得到的结果进行解析。