`
ybhuxiao
  • 浏览: 193274 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TestBase64加解密

    博客分类:
  • java
阅读更多
package test;

import java.io.IOException;

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

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class TestBase64 {

	public static void main(String[] args) {
		String str = "huxiao中文@%……&#%&*324234";
		
		System.out.println("--------------");
		System.out.println(encode(str));
		System.out.println(encode(str).length());
		System.out.println(decode(encode(str)));
		System.out.println(decode(encode(str)).length());
		System.out.println("--------------");
		System.out.println(encode2(str));
		System.out.println(encode2(str).length());
		System.out.println(decode2(encode2(str)));
		System.out.println(decode2(encode2(str)).length());
		System.out.println("--------------");
	}

	public static String encode(String str){
		return new BASE64Encoder().encode(str.getBytes());
	}

	public static String decode(String str) {
        try {  
            return new String(new BASE64Decoder().decodeBuffer(str));  
        } catch (IOException e) {  
            e.printStackTrace();  
            throw new RuntimeException("base64解码错误");  
        }  
	}
	
	/**
	 * description: 使用commons-codec加密<br>
	 * @param str
	 * @return
	 * 2010-4-9
	 * @author huxiao kskr@qq.com
	 */
	public static String encode2(String str) {
		return new String(new Base64().encode(str.getBytes()));
	}
	
	/**
	 * description: 使用commons-codec解密<br>
	 * @param str
	 * @return
	 * 2010-4-9
	 * @author huxiao kskr@qq.com
	 */
	public static String decode2(String str) {
        return new String(new Base64().decode(str.getBytes()));
	}
	
}



--------------------------------------------------

输出为
--------------
aHV4aWFv1tDOxEAloa2hrSYjJSYqMzI0MjM0
36
huxiao中文@%……&#%&*324234
23
--------------
aHV4aWFv1tDOxEAloa2hrSYjJSYqMzI0MjM0

38
huxiao中文@%……&#%&*324234
23
--------------




用commons-codec加密的是38个字节,多出了两个字节,实际上应该是换行符,并没有影响解密后的值
分享到:
评论

相关推荐

    testBase64.7z

    在这个项目中,我们有两个主要的源文件:CBase64Code.cpp 和 testBase64.cpp,它们分别实现了Base64的编码和解码功能,并进行了测试。 CBase64Code.cpp 可能包含一个名为 `CBase64Code` 的类,这个类提供了基本的...

    base64_delphi_delphibase64_

    2. **TestBase64.dpr**:这是 Delphi 项目的主程序文件,定义了应用程序的入口点,通常包括应用程序的初始化和运行代码。 3. **TestBase64.dproj**:这是 Delphi 项目的配置文件,包含了构建设置、编译选项、依赖...

    TestBase_UiTestBase_AndroidTestUI_

    `TestBase_UiTestBase_AndroidTestUI_`这个项目显然专注于使用UiAutomator进行Android应用的UI自动化测试。下面将详细介绍UiAutomator以及如何利用它进行测试,同时会涉及到`TestBase.java`这个核心文件可能包含的...

    BASE64的算法源代码

    这个压缩包包含的文件可能是一个关于BASE64编码的示例程序或者代码库,比如`TestBase64.vbg`可能是一个VBScript的工程文件,`TestApp`可能是应用测试程序,而`Base64`可能包含了BASE64编码的实现代码。 BASE64编码...

    Base64编码(VC++实现)

    同时,为了测试编码功能,可以创建一个`TestBase64`程序,读取文件内容进行编码,并打印或保存结果。 在实际应用中,Base64编码常用于电子邮件的附件传输,因为邮件系统通常只支持文本格式。编码后的数据可以被正确...

    base64 编码解码

    压缩包中的`TestBase64.sln`文件可能是一个Visual Studio解决方案文件,用于开发一个Base64编码解码的示例项目。而`TestBase64`可能是项目中的源代码文件,包含了Base64编码和解码的实现。通过这些文件,你可以学习...

    base64 coder

    - `TestBase64Coder.java`:这是一个测试类,用于验证`Base64Coder`类的功能,可能包含了各种测试用例,通过编码和解码不同类型的输入来确保代码的正确性。 - `Base64FileEncoder.java`:这个类可能扩展了Base64编码...

    TestBase

    ### Java和单元测试中的练习首先为Triangle.java编写测试。 它有3种公共方法,可以回答三角形中有多少边相等的问题。 Scalene,等腰,等边写测试可为我们提供100%的代码覆盖率,并修复您在代码中发现的任何错误。...

    vb效率很高的Base64编码类

    "TestBase64.vbg"可能是一个VB工程组文件,其中包含了实现Base64编码类的源代码。开发人员可以通过打开这个文件,在VB6.0的IDE中查看和编辑代码,理解并学习如何构建高效Base64编码器。"TestApp"可能是一个测试应用...

    VC++base64数据组解

    在项目中的`testbase64`文件可能是一个测试用例,包含了一些Base64编码的数据,用于验证解码函数的正确性。开发者可以通过运行这个程序,查看其是否能正确地从文件读取、解码并输出原始数据。 总之,VC++实现的Base...

    cotta-testbase-3.0.jar

    jar包,官方版本,自测可用

    ipfs重新加密:IPFS数据的一些重新加密演示

    ipfs重新加密IPFS数据的一些重新加密演示介绍src ipfs.php(ipfs php api库类) reEncrytion.php(重新加密api库类) testBase64.php(测试脚本)用法安装php-5.6 php testBase64.php演示版

    java使用Base64编码实例

    在我们的实例中,我们使用了一个测试方法testBase64来测试Base64编码和解码的过程。在该方法中,我们首先定义了一个字符串,然后将其编码为Base64格式,最后将其解码回原始字符串。 整个过程可以分为三个步骤:首先...

    blobstore-testbase:Everit Blobstore的JUnit测试用例

    而"blobstore-testbase"则是针对Everit Blobstore进行单元测试的一系列用例,确保其功能的正确性和稳定性。 在Java开发中,单元测试是必不可少的一部分,JUnit是Java领域最流行的单元测试框架。通过JUnit,开发者...

    SQL实验1数据库的创建

    * 使用 Transact-SQL 指定参数创建数据库:使用 T-SQL 语句创建数据库 testbase1 和 testbase2。 2. 分离数据库 * 交互式分离数据库:打开分离数据库对话框,最后点击“确定”即可。 * 使用系统存储过程分离数据库...

    testbase:服务器日志管理的测试任务

    此存储库包含有关监视一组服务器的CPU使用率的人为任务的信息和测试程序。 ... 文件夹karl,alex,nomad1,nomad1.utc,nomad2,nomad3包含示例程序。 在generator文件夹中-用于测试的日志生成器。...

    跨平台自动化测试工具QTAF.zip

    QTA是一个跨平台的测试自动化...快速入门、使用和接口文档请参考《Testbase文档》TUIATUIA (Tencent UI Automation)是UI自动化基础库,为QTA各个平台下的客户端UI测试Driver所使用。 标签:QTAF 自动化测试

    数据库原理与应用实验报告.doc

    例如,创建名为`testbase1`和`testbase2`的数据库,指定了数据文件和日志文件的路径、初始大小、最大大小以及自动增长的百分比。 2. **数据库的分离与附加**: - 分离数据库:使用交互式或系统存储过程(`sp_detach...

Global site tag (gtag.js) - Google Analytics