Java中BASE64加解密的工具类

Base64加密解密工具类 java开发使用base64进行加密解密,开发人员只需调用其中方法即可完成加密解密操作! 立即下载
package me.xueyao.encryption;

import java.io.UnsupportedEncodingException;

/**
 * BASE64加解密工具类
 *
 * @Author: zkx
 * @date:2019年5月20日 下午5:05:30
 *
 */
class Base64Utils {

	private static char[] base64EncodeChars = new char[] { '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', '+', '/' };

	private static byte[] base64DecodeChars = new byte[] { -1, -1, -1, -1, -1,
			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
			-1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59,
			60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
			10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1,
			-1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
			38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1,
			-1, -1 };

	/**
	 * 	BASE64 加密
	 * @param data
	 * @return
	 */
	protected static String encrypt(byte[] data) {
		StringBuffer sb = new StringBuffer();
		int len = data.length;
		int i = 0;
		int b1, b2, b3;
		while (i < len) {
			b1 = data[i++] & 0xff;
			if (i == len) {
				sb.append(base64EncodeChars[b1 >>> 2]);
				sb.append(base64EncodeChars[(b1 & 0x3) << 4]);
				sb.append("==");
				break;
			}
			b2 = data[i++] & 0xff;
			if (i == len) {
				sb.append(base64EncodeChars[b1 >>> 2]);
				sb.append(base64EncodeChars[((b1 & 0x03) << 4)
						| ((b2 & 0xf0) >>> 4)]);
				sb.append(base64EncodeChars[(b2 & 0x0f) << 2]);
				sb.append("=");
				break;
			}
			b3 = data[i++] & 0xff;
			sb.append(base64EncodeChars[b1 >>> 2]);
			sb.append(base64EncodeChars[((b1 & 0x03) << 4)
					| ((b2 & 0xf0) >>> 4)]);
			sb.append(base64EncodeChars[((b2 & 0x0f) << 2)
					| ((b3 & 0xc0) >>> 6)]);
			sb.append(base64EncodeChars[b3 & 0x3f]);
		}
		return sb.toString();
	}

	/**
	 * 	Base64 解密
	 * @param str
	 * @return
	 * @throws UnsupportedEncodingException
	 */
	protected static byte[] decrypt(String str) throws Exception{
		StringBuffer sb = new StringBuffer();
		byte[] data =  str.getBytes("US-ASCII");
		int len = data.length;
		int i = 0;
		int b1, b2, b3, b4;
		while (i < len) {

			do {
				b1 = base64DecodeChars[data[i++]];
			} while (i < len && b1 == -1);
			if (b1 == -1) {
				break;
			}

			do {
				b2 = base64DecodeChars[data[i++]];
			} while (i < len && b2 == -1);
			if (b2 == -1) {
				break;
			}
			sb.append((char) ((b1 << 2) | ((b2 & 0x30) >>> 4)));

			do {
				b3 = data[i++];
				if (b3 == 61)
					return sb.toString().getBytes("iso8859-1");
				b3 = base64DecodeChars[b3];
			} while (i < len && b3 == -1);
			if (b3 == -1)
				break;
			sb.append((char) (((b2 & 0x0f) << 4) | ((b3 & 0x3c) >>> 2)));

			do {
				b4 = data[i++];
				if (b4 == 61)
					return sb.toString().getBytes("iso8859-1");
				b4 = base64DecodeChars[b4];
			} while (i < len && b4 == -1);
			if (b4 == -1)
				break;
			sb.append((char) (((b3 & 0x03) << 6) | b4));
		}
		return sb.toString().getBytes("iso8859-1");
	}
}

Java Base64加密解密方法工具类 立即下载

相关推荐

java常用工具类之DES和Base64加密解密类

主要介绍了java常用工具类之DES和Base64加密解密类,需要的朋友可以参考下

java Base64编码解码工具类

java Base64编码解码工具类。

weixin_44953227的博客 611

解决UE5像素流三大痛点:鼠标锁定/双光标/自动播放(附app.js魔改指南)

本文针对UE5像素流服务在实际应用中常见的鼠标锁定、双光标和自动播放三大交互痛点,提供了深入的技术分析和解决方案。通过详细解析app.js源码,指导开发者如何修改控制方案、修复光标显示以及实现静音自动播放,旨在提升Pixel Streaming应用的用户体验与专业度。

weixin_28025327的博客 382

JAVA常用工具类

java常用工具类

yudaonihaha的专栏 1914

maxwell与steady state thermal 通过workbench耦合仿真

文章目录maxwellsteady state thermal maxwell 1加入maxwell并打开 2导入模型 3选择求解器类型:涡流求解器eddy current 4修改模型名字不能带_等特殊符号 5为模型赋材料 6设立3D边界,各边电流进出方向为0其余方向300 7设置激励条件,可设置电流大小,相位,方向 8设置集肤深度,选取中间铜导体的体然后设置,如何设置看帮助文档 9求解设置 迭代步数 收敛精度 交流电频率 10验证条件满足计算 11求解 发现无法求解,删除ai

roymustang的博客 9201

Unity镜子效果的实现(无需镜子Shader)

Unity镜子效果制作教程 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心分享、心创新!助力快速实现一个简单的镜面反射效果为新手节省宝贵的时间,避免采坑! Chinar 教程效果: 1 Cre...

weixin_33947521的博客 9564

Base64加密与解密使用(+拓展:盐值法)

1、什么是Base64 Base64是一种直接利用64位可打印字符来表示二进制数据的算法,是一种比较常见的加密算法。JDK1.8版本提供了java.util.Base64的工具类,使用Base64提供的2个内部类进行加解密操作。 数据加密:java.util.Base64.Encoder, 对象获取方法:public static Base64.Encoder getEncoder() 数据加密处理:public byte[] encoder (byte[] src)。 ......

qianfeifeio的专栏 1万+

再相逢【知识图谱】中文医学知识图谱CMeKG,中文产科医学知识图谱COKG | 附:图数据库Neo4j下载安装教学(遇到问题并解决) + Neo4j基本操作

本篇文章介绍知识图谱的相关知识。从便于理解的角度切入,给出知识图谱的形象化定义,并介绍了国内的中文医学知识图谱CMeKG,还以用户视角体验了中文产科医学知识图谱。目录二介绍了如何部署安装Neo4j数据库,并解决了部署过程中遇到的一些基础错误,随后介绍了Neo4j图数据库的基础操作。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 2615

Java实现DES+BASE64加解密

一、以前在程序中用到过DES+BASE64加解密,通过安全监测出来的问题: Abstract: 程序使用了弱加密算法,无法保证敏感数据的保密性。 Explanation: 陈旧的加密算法(如 DES)再也不能为敏感数据提供足够的保护了。 加密算法依赖于密钥大小,这是确保加密强度的 主要方法之一。 加密强度通常通过生成有效密钥所需的时间和计算能力来衡量。 计算能力的提高使得能够在合理的时 间内获...

醉梦洛的博客 2097

当C#遇见声音魔法:从麦克风到文字的0.1秒奇幻漂流

为什么选300Hz?因为人声基频通常在85-255Hz,但清脆的“啊”可能到2kHz,所以300Hz是安全区!(参考知识库[1])

墨夶的博客 365

基于matlab的阈值分割的车牌定位识别系统

车牌自动识别模块是现代社会智能交通系统(ITS)的重要组成部分,是图像处理和模式识别技术研究的热点,具有非常广泛的应用。车牌识别主要包括以下三个主要步骤:车牌区域定位、车牌字符分割、车牌字符识别。本案例通过对采集的车牌图像进行灰度变换、边缘检测、腐蚀及平滑等过程进行车牌图像预处理,并由此得到一种基于车牌颜色纹理特征的车牌定位方法,最终实现了车牌区域定位。车牌字符分割是为了方便后续对车牌字符进行匹配,从而对车牌进行识别。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 968

java base64编码和解码

Base64 编码会将字符串编码得到一个含有 A-Za-z0-9+/ 的字符串。base64 编码和解码网上有些地方称为 base64 加密和解密,这是不准确的。base64 是不能用来加密和解密的,它只是一种编码解码方式,不能用于加密和解密,如果你想加密和解密可以选择如 AES、RSA 等加密算法。

西凉的悲伤博客 2万+

【面试系列】数据工程师高频面试题及详细解答

本文针对数据工程师岗位,提供了详尽的面试题库和解答,分为初级、中级和高级三个层次。初级面试题主要涉及基本的数据处理和ETL工具的使用,如SQL查询、数据清洗和基本的数据建模。中级面试题重点考察数据管道设计、数据库优化和大数据平台的应用。高级面试题则深入探讨高级数据处理技术、分布式系统架构和数据湖的实现。通过这些问题和解答,候选人可以全面了解数据工程师岗位所需的技能,帮助其更好地准备面试。常考知识点总结部分则系统归纳了数据工程师岗位的关键技能领域。

在路上的专栏 2375

java rsautil_RSA+Base64加解密Java工具类RSAUtil

RSA+Base64加解密Java工具类RSAUtil(公钥和私钥请自行生成)import java.io.IOException;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.PrivateKey;imp...

weixin_31085635的博客 385

Sprd Android 13 备忘 OTA升级app没更新到目标版本,恢复出厂才生效修改这个值

【代码】Sprd Android 13 备忘 OTA升级app没更新到目标版本,恢复出厂才生效修改这个值。

m0_60898338的博客 679

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java base64工具类_Base64加解密Java工具类Base64Util

Base64加解密Java工具类import java.io.InputStream;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;/*** Base64加密与解密** @author chenxy*/@SuppressWarnings("restriction")public final class Base64Util ...

weixin_33252909的博客 240

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java base64解码工具_Base64加解密Java工具类Base64Util

Base64加解密Java工具类import java.io.InputStream;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;/*** Base64加密与解密** @author chenxy*/@SuppressWarnings("restriction")public final class Base64Util ...

weixin_42314648的博客 239

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java工具类-BASE64加解密

1 引入apache commons-codec依赖 <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency> 2 使用Base64.encodeBase64加密 public static Stri

zd214的专栏 258

「Java工具类」Apache的DigestUtils加密工具类和Base64加解密类

以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技术分享;datax、kafka、flink等大数据处理框架的技术分享

Java Farmer 7712

Java使用base64加解密

import java.io.IOException; import java.lang.reflect.Method; import org.apache.commons.codec.binary.Base64; public class Base64Utils { // %%%%%%%%%%%%%%%%%%%% 方法一 %%%%%%%%%%%%%%%%%%%% /

StevenXu的专栏 462

java加解密支持库_优雅的java加解密工具类-支持RSA,AES,MD5,Base64,Hex,ROT

jencrypt优雅的java加解密工具类-支持RSA,AES,MD5,Base64,Hex,ROT一.RSA TestCasepublic class TestRSAAlgorithm {public static void main(String[] args) {testFull();}public static void testFull() {//TODO Hex testRSAAlgo...

weixin_39546501的博客 216

java base64utils_Java Base64Utils

/*** * * Copyright 1994 JsonInternational* All rights reserved.* Created on 19941115* Created by Jason* * */package cn.ucaner.alpaca.framework.utils.encrypt;/*** @Package:cn.ucaner.common.uti...

weixin_42560067的博客 173

base64utils java_Base64Utils 在Java后台的扩展

/*** Created by ruiyi on 2016/4/27.*/public class Base64Util {private static char[] base64EncodeChars = new char[]{'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', ...

weixin_30011833的博客 226

Base64加解密

Base64加解密 import java.nio.charset.StandardCharsets; import java.util.Base64; /** * base64 加解密工具类 */ public final class Base64Util { /** * 禁止实例化 */ private Base64Util() { } /** * 编码 * * @param str str * @

qq_32267523的博客 297

java中Base64的加密工具封装

Base64加密作为最简单普遍的加密方式(其实只能称为编码方式),应用场景众多比如秘钥,安全证书,也应用在其他的加密方式中或与其他加密方式进行嵌套使用 可以通过引用sun.misc来使用,也可以自己手动封装工具类(不会受第三方改动的影响,我一般采用这个),目前测试,两种加解密结果都一样,具体如下; (1)直接引用(jdk版本1.8)及测试如下: package com.mobile...

weixin_34262482的博客 183
上一篇: Java中解决字段的组合排列问题的比较器工具类
下一篇: Java中DES加解密的工具类
Monika、
博客等级 码龄7年 16粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monika、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值