加密base64
package com.lzkj.csp.bas.util;
@SuppressWarnings("restriction")
public class Base64Utils {
private final static sun.misc.BASE64Encoder base64Encoder = new sun.misc.BASE64Encoder();
private final static sun.misc.BASE64Decoder base64Decoder = new sun.misc.BASE64Decoder();
/**
* Base64-encode the given byte array to a String.
*
* @param src the original byte array (may be {@code null})
* @return the encoded byte array as a UTF-8 String (or {@code null} if the
* input was {@code null})
*/
public static String encodeToString(byte[] src) {
if (src == null)
return null;
return base64Encoder.encode(src);
}
/**
* Base64-encode the given byte array to a String.
*
* @param src the original byte array (may be {@code null})
* @param followRFC2045 true Encoded lines be no more than 76 characters long
* false Encoded lines be more than 76 characters long
* @return
* @see <a href="https://tools.ietf.org/html/rfc2045"/>
* @see <a href="https://en.wikipedia.org/wiki/Base64#MIME"/>
* @see <a href="https://en.wikipedia.org/wiki/Request_for_Comments"/>
*/
public static String encodeToString(byte[] src, boolean followRFC2045) {
if (src == null)
return null;
String encode = base64Encoder.encode(src);
if (!followRFC2045) {
encode = encode.replaceAll(System.getProperty("line.separator"), "");
}
return encode;
}
/**
* Base64-decode the given byte array from an UTF-8 String.
*
* @param src the encoded UTF-8 String (may be {@code null})
* @return the original byte array (or {@code null} if the input was
* {@code null})
*/
public static byte[] decodeFromString(String src) {
if (src == null)
return null;
try {
byte[] decodeBuffer = base64Decoder.decodeBuffer(src);
return decodeBuffer;
} catch (Exception e) {
throw new RuntimeException("decodeFromString failed.", e);
}
}
}
说明:以上的工具类中加密方法(encodeToString)有两个,一个是普通的base64加遵循RFC2045机密规则,此规则在加密后的符76位自动添加换行符,所以在此工具类中重写了encodeToString(String src ,boolean followRFC2045),true:遵从、false:不遵从
加密base64的更多相关文章
- Java 加密 base64 encode
版权声明:本文为博主原创文章,未经博主允许不得转载. [前言] 计算机中的数据都是二进制的,不管是字符串还是文件,而加密后的也是二进制的, 而我们要看到的往往是字符串,本文就介绍了将byte[]转为各 ...
- [DEncrypt] MySecurity--安全加密/Base64/文件加密 (转载)
点击下载 MySecurity.zip 这个类是关于加密,解密的操作,文件的一些高级操作1.MySecurity 加密字符串2.MySecurity 加密字符串 密钥为系统默认 012345678 ...
- Linux下使用MD5加密BASE64加密
这里以字符串123456为例子,它的md5密文值为:e10adc3949ba59abbe56e057f20f883e 这里以1.txt为需要被加密的文件. 一. 用oppnssl md5 加密字符串和 ...
- js中字符串的加密base64
base64编码主要用在传输,存储表示二进制的领域,还可以进行加密和解密.其实就是字符串的编码和解码 btoa与atob 只能加密ascii,不能加密汉字. var str = 'I LOVE YOU ...
- Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC
Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC 博客分类: Java/Security Javabase64macmd5sha 加密解密,曾经是我一 ...
- Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES RSA
版权声明:本文为博主原创文章,未经博主允许不得转载. [前言] 本文简单的介绍了加密技术相关概念,最后总结了java中现有的加密技术以及使用方法和例子 [最简单的加密] 1.简单的概念 明文:加密前的 ...
- base64位加密解密
1.base64位加密base64是用于传输8Bit字节代码,由上图的编码表可以知道,编码后的内容只包含这64个字符类型,所以称为base64编码 2.编码过程 : 首先将待编码的内容转换成8位二进制 ...
- iOS常见的几种加密方法(base64.MD5.Token传值.系统指纹验证。。加密)
普通加密方法是讲密码进行加密后保存到用户偏好设置中 钥匙串是以明文形式保存,但是不知道存放的具体位置 一. base64加密 base64 编码是现代密码学的基础 基本原理: 原本是 8个bit 一组 ...
- 步步为营-33-Md5(32)加密与Base64加密
说明: 1:直接贴码 using System; using System.Collections.Generic; using System.ComponentModel; using System ...
随机推荐
- python 基础篇 自定义函数
多态 我们可以看到,Python 不用考虑输入的数据类型,而是将其交给具体的代码去判断执行,同样的一个函数(比如这边的相加函数 my_sum()),可以同时应用在整型.列表.字符串等等的操作中. 在编 ...
- C#多线程(12):线程池
目录 线程池 ThreadPool 常用属性和方法 线程池说明和示例 线程池线程数 线程池线程数说明 不支持的线程池异步委托 任务取消功能 计时器 线程池 线程池全称为托管线程池,线程池受 .NET ...
- mysql面试(1)
一一个 SQL 执行行行的很慢,我们要分两种情况讨论:1.大大多数情况下很正常,偶尔很慢,则有如下原因(1).数据库在刷新脏⻚页,例例如 redo log 写满了了需要同步到磁盘.(2).执行行行的时 ...
- [Linux] 检查是否已有进程在运行
出处:sblim-sfcb-1.4.9 / sfcBroker.c int process_is_running() { #define STRBUF_LEN 512 #define BUF_LEN ...
- Windows API Index
https://docs.microsoft.com/en-us/windows/desktop/apiindex/windows-api-list
- 理解分布式一致性:Paxos协议之Generalized Paxos & Byzantine Paxos
理解分布式一致性:Paxos协议之Generalized Paxos & Byzantine Paxos Generalized Paxos Byzantine Paxos Byzantine ...
- 微软宣布一批新获得Microsoft Teams认证的会议硬件
COVID-19 疾病流行期间,微软见到了 Microsoft Teams 视频会议解决方案取得的巨大增长.然而在许多情况下,生产力与音视频硬件的质量息息相关.好消息是,该公司刚刚完成了一批第三方硬件 ...
- 使用3种协议搭建本地yum仓库
关闭防火墙和selinux [root@qls yum.repos.d]# systemctl stop firewalld (stop,start,disable,enable) [root@qls ...
- shell脚本(多线程批量创建用户)
shell脚本中的多线程 很多场景中会用到多线程,例如备份数据库,有100个库,正常备份效率极其低下.有了多线程原本可能需要10个小时备份,现在分10个线程同时去干,只要一个小时就解决了.今天就介绍下 ...
- SaltStack的数据系统
一.SaltStack数据系统的分类 1.Grains(收集的是静态数据) 官方使用文档:https://www.unixhot.com/docs/saltstack/topics/targeting ...