package mains;
import java.util.ArrayList;
import java.util.List;
import com.sun.xml.internal.messaging.saaj.packaging.mime.util.BASE64DecoderStream;
import com.sun.xml.internal.messaging.saaj.packaging.mime.util.BASE64EncoderStream;
import sun.misc.BASE64Encoder;
/***
* Base64位加密算法.
* @author Administrator xlaohe1
*
*/
public class Base64Test {
/*
Base64 使用US-ASCII子集的64个字符,即大小写的26个英文字母,0-9,+,/。
编码总是基于3个字符,每个字符用8位二进制表示,因此一共24位,再分为4四组,每组6位,表示一个Base64的值。
Base64值为0就是A,为27的就是b。这样,每3个字符产生4位的Base64字符。如果被加密的字符串每3个一组,还剩1或2个字符,
使用特殊字符"="补齐Base64的4字。
*/
private final static char[] BASE64ARR = {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I','J', 'K', 'L', 'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i','j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'
};
public static void main(String[] args) {
String src = "Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.";
StringBuffer sb = new StringBuffer();
byte[] buf = src.getBytes();
for(byte b : buf) {
sb.append(to8len(Integer.toBinaryString(b&0xff), 8));
}
String bin = toNstr(sb.toString(), 6, "0");
StringBuffer newBuf = new StringBuffer(bin.length() / 6);
for(int i = 0, len = bin.length(); i < len; i += 6) {
newBuf.append(BASE64ARR[Integer.parseInt(bin.substring(i, i + 6), 2)]);
}
//System.out.println(toNstr(newBuf.toString(), 3, "="));
System.out.println(newBuf.toString());
}
private static String to8len(String src, int n) {
if(null == src || "".equals(src)) return "";
if(src.length() >= n) return src;
return to8len("0" + src, n);
}
private static String toNstr(String src, int mod, String c) {
if(src.length() % mod == 0) return src;
StringBuffer sb = new StringBuffer();
sb.append(src);
int i = 0, len = mod - src.length() % mod;
while(i ++ < len) {
sb.append(c);
}
return sb.toString();
}
}
分享到:
相关推荐
Base64加密算法java版
java关于加密的算法demo代码(Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法) JAVA安全实现三种方式: 1.JDK 2.Commons Codec 3.Bouncy Castle 一。非对称加密算法: 1.DH 2.RSA 3.ELGamal 二。...
Java加密算法是信息安全领域的重要组成部分,它涉及到数据的保护、隐私的维护以及网络通信的安全。在Java中,我们可以使用多种加密技术来实现数据的加密和解密,包括对称加密、非对称加密以及数字签名等。下面将详细...
Java加密算法是信息安全领域的重要组成部分,它在保护数据隐私、验证数据完整性和确认发送者身份等方面发挥着关键作用。这个名为"Java加密算法学习笔记的源码包"的压缩文件包含了关于Java中几种主要加密算法的实践...
Java实现的Base64加密算法示例 Base64加密算法是指一种常用的数据加密算法,主要用于将二进制数据转换为文本格式,以便于在网络上传输。Java语言提供了多种实现Base64加密算法的方式,本文将详细介绍Java实现的Base...
根据提供的文件信息,我们可以深入探讨Base64加密算法在Java中的实现原理以及具体的代码细节。 ### Base64加密算法概述 Base64是一种基于64个可打印字符来表示二进制数据的方法。它通常用于将二进制数据转换为文本...
其基本原理是将每3个字节的数据(24位)分为4组,每组6位,然后将这6位转换成对应的Base64字符,最后不足一组的字节,通过在末尾添加零进行填充。 在Java中,Base64的实现主要依赖于`java.util.Base64`类,这个类是...
对于需要保密的数据,应使用真正的加密算法,如AES或RSA。 6. **Base64与文件**: 如果Base64.java文件涉及文件操作,那么它可能包含了读取文件内容,将其编码为Base64字符串,以及将Base64字符串解码回文件的功能。...
Java加密算法源码是开发人员在进行数据安全处理时常用的一种工具,涵盖了多种常见的加密算法,包括AES(高级加密标准)、DES(数据加密标准)、MD5(消息摘要算法5)、RSA(公钥加密技术)以及SHA(安全散列算法)。...
Java作为广泛应用的编程语言,提供了丰富的库来支持各种加密算法。在这个压缩包中,包含的资源可以帮助我们理解并实现SHA1、SHA、MD5、AES加密与解密,以及BASE64编码和解码。下面我们将详细探讨这些加密算法和它们...
参照网上Base64 js加密解密写的java实现,网上没看到出现过,可能大神都不屑写这种小东东,只好自己写了。弄了好几天,总算弄好了。...熟悉二进制的可自己更改算法,当然加密算法更改了解密算法同样得更改
总之,Java提供了方便的`java.util.Base64`工具类来处理Base64编码和解码,使得在Java项目中实现Base64加密解密变得简单且高效。这个基础的加密解密机制虽然简单,但在很多场景下已经足够满足基本的数据保护需求。
在上述代码中,我们使用了AES加密算法,创建了一个`SecretKeySpec`对象来指定密钥,并使用`Cipher`类进行加密。加密后的二进制数据再通过Base64编码,生成一个可打印的字符串。 描述中提到有三个Java文件,可能分别...
四、Java加密算法实现步骤 1. 导入相关类库:如`javax.crypto.Cipher`、`java.security.KeyPairGenerator`等。 2. 选择加密算法:如AES、RSA等。 3. 初始化Cipher对象:根据加密模式(ECB、CBC等)和填充模式...
Java加密技术(一) 关键字: java 加密基础, base64, md5, mac, sha, 单向加密 。。。。。。。。。。。。。。
本资源是集合了SMS4和自定义的Base64加密算法。SMS4加密算法中提供了如下接口: private static byte[] encode16(byte[] plain, byte[] key); private static byte[] decode16(byte[] cipher, byte[] key); private ...
Base64主要用于将二进制数据编码为可打印的ASCII字符,而RSA则是一种非对称加密算法,提供了更高的安全性。 Base64是一种简单的编码方式,它将任意的二进制数据转换成ASCII字符串,使得这些数据可以以文本形式在...
四、Java实现的AES加密算法 下面是一个Java实现的AES加密算法的示例代码: ```java package com.imooc.security.aes; import java.security.Key; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; ...
然而,需要注意的是,Base64并不是一种安全的加密算法,因为它只是一种编码方式,易于解码。对于需要保护的数据,应当使用更强大的加密算法,如AES。 在提供的文件列表中,`down_xl.jsp`和`base64.jsp`可能是两个...
java代码。支持加密与解密,Base64加密算法