鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 网站安全 > 加密解密 > >

使用Java Base64解密算对openssl的base64加密字符串进行解密

来源:互联网 作者:佚名 时间:2015-09-03 09:49
首先,使用openssl的base64加密算法对字符串进行加密: # echo the source string | openssl enc -base64 dGhlIHNvdXJjZSBzdHJpbmcK 然后,编写Java Base64解密算法: pom.xml: 需要加入以下依赖包 dependency groupIdcommons-codec/groupId artifactIdcomm

首先,使用openssl的base64加密算法对字符串进行加密:

# echo "the source string" | openssl enc -base64
dGhlIHNvdXJjZSBzdHJpbmcK

然后,编写Java Base64解密算法:

pom.xml:

需要加入以下依赖包

<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>


xxx.java:

package com.xxx.xxx;

import org.apache.commons.codec.binary.Base64;

public class xxx{


private static Base64 base64 = new Base64();

public static String decrypt(String context) {
   return new String(base64.decode(context));
}

public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("dencrypted: " + decrypt("xxx"));
}

}


备注:

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到。

RFC2045还规定每行位76个字符,每行末尾需添加一个回车换行符,即便是最后一行不够76个字符,也要加换行符。

实现原理

Base64实际上是对二进制码做分组转换操作

1.每3个8位二进制码位一组,转换为4个6位二进制码为一组(不足6位时地位补0)。3个8位二进制码和4个6位二进制码长度都是24位。

2.对获得的4个6位二进制码补位,每个6位二进制码添加两位高位0,组成4个8位二进制码。

3.将获得的4个8位二进制码转换为4个十进制码。

4.将获得的十进制码转换为Base64字符表中对应的字符。



网友评论
<