package com.dbn.utils;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder; import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils; public class DbnBase64 {
public final static String ENCODING="UTF-8";
/**
* 数据BASE64加密字符串
* @param data:需要加密的字符串
* @param additionSymbol:加密干扰符
* @return
*/
public static byte[] encode(final String data,final String additionSymbol ) {
String finalData=data;
if(!StringUtils.isBlank(additionSymbol)){
finalData=finalData+additionSymbol;
}
return Base64.encodeBase64(finalData.getBytes());
} public static String stringEncode(final String data,final String additionSymbol ) throws UnsupportedEncodingException {
if(StringUtils.isBlank(data)){
return "";
}
return new String(encode(data, additionSymbol),ENCODING);
} /**
* 数据BASE64解码字符串
* @param data:加密后的字符串
* @param additionSymbol:干扰数据
* @return
* @throws UnsupportedEncodingException
*/
public static String decode(final String data,final String additionSymbol) throws UnsupportedEncodingException {
if(StringUtils.isBlank(data)){
return "";
}
byte[] decodeString=Base64.decodeBase64(data.getBytes(ENCODING));
if(!StringUtils.isBlank(additionSymbol)){
return new String(decodeString,ENCODING).replaceAll(additionSymbol, "");
}else{
return new String(decodeString,ENCODING);
}
} /**
* BASE64解密
*
* @param key
* @return
* @throws Exception
*/
public static byte[] decryptBASE64(String key) throws Exception {
return new Base64().decode(key.getBytes());
} /**
* BASE64加密
*
* @param key
* @return
* @throws Exception
*/
public static String encryptBASE64(byte[] key) throws Exception {
return new String(new Base64().encode(key));
} public static void main(String[] args) throws UnsupportedEncodingException {
/**/ /* System.out.println(decode("bGlyZW5iaW5nQG9hdC5hd2ViLmNvbS5jbmYxNjI5OTQzLWFhNmQtNDMyZS04ZjAwLTg3N2QyNDg0NjAwZA==",""));
System.out.println(decode("aHV5YW9qaW5Ab2F0LmF3ZWIuY29tLmNuZjE2Mjk5NDMtYWE2ZC00MzJlLThmMDAtODc3ZDI0ODQ2MDBk",""));
System.out.println(decode("MQ==",""));
System.out.println(decode("MA==",""));
System.out.println(decode("ZmlsbGlucHJpY2U=",""));
System.out.println(decode("eyJkYXRhIjp7ImNvbnRlbnQiOiLmgqjlpb3vvIzor7flj5HpgIHkvaDopoHmiqXku7flnLDljLrnmoTlkI3np7DmiJbogIXljLrlj7cifSwidHlwZSI6Imh0bWwifQ==",""));
System.out.println(stringEncode("fillinprice",""));*/ // String r1=new String(decode("NDA2NDM=", ""));
// System.out.println("r1="+r1);
// String hhh=new String(DbnBase64.encode("0139951048096731"+"@im.t.dbn.cn","f0e05b83-dbc3-4bfe-bd4c-34e442a9d032"),ENCODING);
// System.out.println("hhh="+hhh);
// System.out.println(decode("bGl5dWZ1YTQxM2Q3YzUtOGJmZS00MTIzLTk1MmEtOGI4OTFiMGYwM2Fm", "c35dfc04-9c5a-4e6b-ae27-a9ad10a0db68"));
// System.out.println(decode("MTM5NjQ5NDIxMTE5NTQ4Ng==", ""));
// String r1=new String(stringEncode("admin", ""));
// System.out.println("r1="+r1);
// String hhh=new String(DbnBase64.encode("3",""),ENCODING);
// System.out.println("hhh="+hhh);
// System.out.println(decode("bGl5dWZ1YTQxM2Q3YzUtOGJmZS00MTIzLTk1MmEtOGI4OTFiMGYwM2Fm", "c35dfc04-9c5a-4e6b-ae27-a9ad10a0db68"));
// System.out.println(decode("MQ==", ""));
// System.out.println(decode("Mg==", ""));
// System.out.println(decode("k4djVS8Z+aYXIG2hKaB86F2vhb10peAy9gcPGLOMx1+qNEGw6BMASWH0NtouD1mic\\/fGPQoTSFwW\\/99Y0uarF8qk\\/kp7XyIutNUkTXqfpqbqaCeDs2nndYl9Lu9a\\/ZCxDvWwTuopfgmai9627X6GVTSMyzE6Hj6\\/0cydtbN3yAs=", ""));
// System.out.println(URLEncoder.encode(stringEncode("oa","")));
// System.out.println((String)null);
// String r1=new String(DbnBase64.encode("songguopei",""),ENCODING);
// System.out.println("r1="+r1);
// String hhh=new String(DbnBase64.encode("你好!!",""),ENCODING);
// String hhh1 = stringEncode("随时随地查猪价","");
// System.out.println(decode("5p+l54yq5Lu3",""));
// System.out.println(decode("bG9va3ByaWNlQG9hdC5hd2ViLmNvbS5jbg==",""));
// System.out.println(decode("ZmlsbGlucHJpY2VAb2F0LmF3ZWIuY29tLmNu",""));
// System.out.println(decode("aGVscEBvYXQuYXdlYi5jb20uY24=",""));
// System.out.println(decode("aGFuZ3FpbmdiYW8=",""));
// System.out.println(decode("ZmlsbGlucHJpY2U=",""));
// System.out.println(stringEncode("fillinprice", ""));
// System.out.println(URLEncoder.encode(stringEncode("25788", "")));
// System.out.println(URLEncoder.encode(stringEncode("25788", ""),"UTF-8"));
//// System.out.println(decode("bGl5dWZ1YTQxM2Q3YzUtOGJmZS00MTIzLTk1MmEtOGI4OTFiMGYwM2Fm", "c35dfc04-9c5a-4e6b-ae27-a9ad10a0db68"));
// System.out.println(decode("aHR0cDovL2ZpbGUxLmF3ZWIuY29tLmNuLy8yMDE0LzEvMTMvNzUwLmpwZw==", ""));
// System.out.println(decode("y+bKscvmtdiy6dbtvNs=", "")); //System.out.println("---"+stringEncode("liyufu", "f4f4698f-60f7-498a-bd1e-1fe0f903552d"));
//System.out.println(decode("bGl5dWZ1ZjRmNDY5OGYtNjBmNy00OThhLWJkMWUtMWZlMGY5MDM1NTJk", "f4f4698f-60f7-498a-bd1e-1fe0f903552d"));
/*String r2=DbnBase64.decode(r1,null);
System.out.println("r2="+r2);*/
String str =DbnBase64.decode("eyJyIjoiMDA0MDAyIiwidiI6IjEiLCJkIjp7ImF0dHJzIjp7Im1vYmlsZVBob25lIjoiMTg1MTUyMjIwNjciLCJzdGFydFRpbWUiOjE0NDg0MjA0MDAwMDAsImVuZFRpbWUiOjE1NDE3NDY0MTgwMDB9fX0=","");
System.out.println(new String(Base64.decodeBase64("eyJkIjp7ImF0dHJzIjp7fSwiZG9tYWlucyI6eyJhZGRDaXJjbGUiOlt7ImlkIjoiNDciLCJpbWdVcmwiOiJodHRwOi8vZmlsZXMudC5ueGluLmNvbS9wdWJsaWMveXVhbnR1LzIwMTUvMTIvMTIvMWIvMjEwNjA1YWQtNjczZi00ZjUxLWEyMzYtYmE5Yjg1ZGJmOTI5LnBuZyIsIm5hbWUiOiLLrrW+yKYiLCJwb3N0VHlwZUxpc3QiOlt7ImlkIjoiMSIsIm5hbWUiOiLG1c2ozPkifSx7ImlkIjoiNCIsIm5hbWUiOiLH87m6zPkifSx7ImlkIjoiNSIsIm5hbWUiOiK5qdOmzPkifSx7ImlkIjoiNiIsIm5hbWUiOiK8vMr1zPkifSx7ImlkIjoiNyIsIm5hbWUiOiLH89awzPkifSx7ImlkIjoiOCIsIm5hbWUiOiLV0Ma4zPkifV0sInN1YnRpdGxlIjois/q6zMjVIn0seyJpZCI6IjQ5IiwiaW1nVXJsIjoiaHR0cDovL2ZpbGVzLnQubnhpbi5jb20vcHVibGljL3l1YW50dS8yMDE1LzEyLzEyLzg4L2Q3MzY0ZGQ5LWFlYWQtNDNlYy05M2Y0LWJlZTIzODE4MDViMi5qcGciLCJuYW1lIjoi1vHB1simIiwicG9zdFR5cGVMaXN0IjpbeyJpZCI6IjEiLCJuYW1lIjoixtXNqMz5In0seyJpZCI6IjQiLCJuYW1lIjoix/O5usz5In0seyJpZCI6IjUiLCJuYW1lIjoiuanTpsz5In0seyJpZCI6IjgiLCJuYW1lIjoi1dDGuMz5In1dLCJzdWJ0aXRsZSI6ItKw1vHB1iJ9LHsiaWQiOiI0OCIsImltZ1VybCI6Imh0dHA6Ly9maWxlcy50Lm54aW4uY29tL3B1YmxpYy95dWFudHUvMjAxNS8xMi8xMi9hMS9hYmI2YWI3MC00ZjRhLTQxMTQtOTZiMC02MzFjNWIzYWY0YzcuanBnIiwibmFtZSI6IszSu6jIpiIsInBvc3RUeXBlTGlzdCI6W3siaWQiOiIxIiwibmFtZSI6IsbVzajM+SJ9LHsiaWQiOiI0IiwibmFtZSI6IsfzubrM+SJ9LHsiaWQiOiI1IiwibmFtZSI6Irmp06bM+SJ9LHsiaWQiOiI4IiwibmFtZSI6ItXQxrjM+SJ9XSwic3VidGl0bGUiOiLM9Luosf2hotP2zPS7qCJ9XX19LCJtIjoiIiwiciI6IjAifQ==".getBytes(ENCODING)) ,"GBK")); // Syso
//System.out.println(decode("dddddd", ""));
//System.out.println(decode(URLDecoder.decode("MTEzOTk2ODU1NjQzOTY2MkBvYXQuYXdlYi5jb20uY25kNjBmZWMwNC0yYTlkLTRmZjItOGEyYi0xZTJiODNmYzRkMjI%3D"),"d60fec04-2a9d-4ff2-8a2b-1e2b83fc4d22"));
} }

DbnBase64加密处理的更多相关文章

  1. 关于CryptoJS中md5加密以及aes加密的随笔

    最近项目中用到了各种加密,其中就包括从没有接触过得aes加密,因此从网上各种查,官方的一种说法: 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学 ...

  2. “不给力啊,老湿!”:RSA加密与破解

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 加密和解密是自古就有技术了.经常看到侦探电影的桥段,勇敢又机智的主角,拿着一长串毫 ...

  3. .NET 对接JAVA 使用Modulus,Exponent RSA 加密

    最近有一个工作是需要把数据用RSA发送给Java 虽然一开始标准公钥 net和Java  RSA填充的一些算法不一样 但是后来这个坑也补的差不多了 具体可以参考 http://www.cnblogs. ...

  4. AES加密

    package com.edu.hpu; import java.math.BigInteger; import java.security.MessageDigest; import java.se ...

  5. Android数据加密之MD5加密

    前言: 项目中无论是密码的存储或者说判断文件是否是同一文件,都会用到MD5算法,今天来总结一下MD5加密算法. 什么是MD5加密? MD5英文全称“Message-Digest Algorithm 5 ...

  6. PHP的学习--RSA加密解密

    PHP服务端与客户端交互或者提供开放API时,通常需要对敏感的数据进行加密,这时候rsa非对称加密就能派上用处了. 举个通俗易懂的例子,假设我们再登录一个网站,发送账号和密码,请求被拦截了. 密码没加 ...

  7. ASP.NET加密和解密数据库连接字符串

    大家知道,在应用程序中进行数据库操作需要连接字符串,而如果没有连接字符串,我们就无法在应用程序中完成检索数据,创建数据等一系列的数据库操作.当有人想要获取你程序中的数据库信息,他首先看到的可能会是We ...

  8. GPG终极指南(加密/签名)

    我们平时都听过非对称加密,公钥和私钥,签名验证,但这些证书都是怎么得到的呢?本篇文章会解答这些问题. 背景介绍 加密的一个简单但又实用的任务就是发送加密电子邮件.多年来,为电子邮件进行加密的标准一直是 ...

  9. RSA非对称加密,使用OpenSSL生成证书,iOS加密,java解密

    最近换了一份工作,工作了大概一个多月了吧.差不多得有两个月没有更新博客了吧.在新公司自己写了一个iOS的比较通用的可以架构一个中型应用的不算是框架的一个结构,并已经投入使用.哈哈 说说文章标题的相关的 ...

随机推荐

  1. MAC emacs下安装php-mode

    在某一个个页面(抱歉不记得了), 比较了三个配置,php-mode, php-mode-improved, xnhtml. 作者在比较后推荐xnhtml,但在xnthml官网下载链接一直显示403,真 ...

  2. CSS之伪元素

    1. :first-line 向元素的首行文本添加样式,不必关心首行是元素节点还是文本节点 <style> body,htm,div,p{ margin:0; padding:0; } d ...

  3. 第三篇:白话tornado源码之请求来了

    上一篇<白话tornado源码之待请求阶段>中介绍了tornado框架在客户端请求之前所做的准备(下图1.2部分),本质上就是创建了一个socket服务端,并进行了IP和端口的绑定,但是未 ...

  4. 【转载】Mysql 查看连接数,状态

    转载地址:http://blog.csdn.net/starnight_cbj/article/details/4492555 命令: show processlist; 如果是root帐号,你能看到 ...

  5. Windows Server 2008 R2 组策略基本设置

    域控组策略基本设置 标注: 组策略计算配置:系统需要重启才生效                          组策略用户配置:系统注销即可生效 一.              域用户登录桌面后自动 ...

  6. CDN技术详解

    CDN,全称为Content DeliveryNetwork,中文意为"内容分发网络"".通过将网络内容发布到最靠近用户的『边缘节点』,使不同地区的用户在访问相同页面.图 ...

  7. Thinkphp 中 distinct 的用法

    TP中distinct()的用处主要是去除重复的值 在Thinkphp手册中也详细说明了(链接:http://document.thinkphp.cn/manual_3_2.html#distinct ...

  8. C/C++ 结构体 数组 简单输入输出

    #include <stdio.h> #include <stdlib.h> struct student{ int num; ]; double dec; }; int ma ...

  9. C# GMap下提供一个高德地图

    using System; using GMap.NET.Internals; using GMap.NET.Projections; namespace GMap.NET.MapProviders ...

  10. TortoiseGit 连接oschina不用每次输入用户名和密码的方法

    每次git clone 和push 都要输入用户名和密码.虽然安全,但在本机上每次都输有些麻烦,如何记住用户名和密码呢? 在网上看了各种方法,太杂,很多可能环境不一样,一直行不通.最后找到一种有效的方 ...