范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

javaBase64和UrlBase64

  整理下工作中常用到的加密解密算法 和 使用场景一、Base64和UrlBase64
  二、Md5 + salt
  二、对称加密
  四、非对称加密
  一、Base64和UrlBase64
  1 Base64
  定义: 严格意义上讲属于一种编解码方式;
  使用64个通用的可打印字符来存储和表示 二进制字数据,同时也可以进行简单的加密,生成不可读文本。
  字符集范围:
  ["A", "B", "C", ... "a", "b", "c", ... "0", "1", ... "+", "/‘]
  大小写字母,0到9,+ / = 共65个,=作为后缀填充
  使用场景:简单加密
  网络数据传输:url、cookie、网页中传输二进制数据
  密钥存储
  数字证书存储
  实现方式Commons Codec(简称"CC" 推荐使用)
  Bouncy Castle(简称"BC")
  JDK(不推荐使用,内部api后期存在移除风险)
  CC方式实现
  引入jar包  commons-codec  commons-codec  1.15 
  实现及测试类package com.util.base64;   import java.io.UnsupportedEncodingException; import org.apache.commons.codec.binary.Base64;   /** * 基于Commons Codec的Base64加密 */ public class Base64Util {  private static final String ENCODING = "UTF-8";    /**  * 一般Base64加密  */  public static String encode(String data) throws UnsupportedEncodingException{  byte[] encodedByte = Base64.encodeBase64(data.getBytes(ENCODING));  return new String(encodedByte, ENCODING);  }    /**  * 安全Base64加密  */  public static String encodeSafe(String data) throws UnsupportedEncodingException{  /*  * 注意:这里采用的encodeBase64(byte[] bytes, boolean arg1)  * arg1为true时,加密后的字符串每行为76个字符,不论每行够不够76个字符,都要在行尾添加"r "  */  byte[] encodedByte = Base64.encodeBase64(data.getBytes(ENCODING),true);  return new String(encodedByte, ENCODING);  }    /**  * Base64解密  */  public static String decode(String data) throws UnsupportedEncodingException{  byte[] decodedByte = Base64.decodeBase64(data.getBytes(ENCODING));  return new String(decodedByte, ENCODING);  }    /**  * 测试  * @param args  * @throws UnsupportedEncodingException  */  public static void main(String[] args) throws UnsupportedEncodingException {  /********************测试一般encode*********************/  String data = "这句是明文原文";  System.out.println("原文-->"+data);  String encodedStr = Base64Util.encode(data);  System.out.println("加密后-->"+encodedStr);  String decodedStr = Base64Util.decode(encodedStr);  System.out.println("解密后-->"+decodedStr);  System.out.println(data.equals(decodedStr));  System.out.println("================================");  /********************测试安全encode*********************/  String data2 = "这句是明文原文 这句是明文原文";  System.out.println("原文-->"+data2);  String encodedStr2 = Base64Util.encodeSafe(data2);  System.out.println("加密后-->"+encodedStr2);  String decodedStr2 = Base64Util.decode(encodedStr2);  System.out.println("解密后-->"+decodedStr2);  System.out.println(data2.equals(decodedStr2));  } }
  2 UrlBase64
  定义: 由于标准的Base64编码后可能出现字符+和/,在URL中就不能直接作为参数,所以又有一种"url safe"的base64编码,其实就是把字符+和/分别变成-和_
  作用:编码数据在网络中安全顺畅的传输
  编码流程:1、明文使用BASE64进行加密
  2、在BASE64的基础上进行以下编码:
  1)去除尾部的"="
  2)把"+"替换成"-"
  3)把"/"替换成"_"
  解码流程:1、把BASE64URL的编码做如下解码:
  1)把"-"替换成"+"
  2)把"_"替换成"/"
  3)(计算BASE64URL编码长度)%4
  a)结果为0,不做处理
  b)结果为2,字符串添加"=="
  c)结果为3,字符串添加"="
  2、使用BASE64解码密文,得到原始的明文
  基于CC 实现UrlBase64加密解密package com.util.base64;     import java.io.UnsupportedEncodingException; import org.apache.commons.codec.binary.Base64; /** * 基于Commons Codec的URLBase64加密 */ public class UrlBase64Util {  private static final String ENCODING = "UTF-8";  /**  * URLBase64加密  */  public static String encode(String data) throws UnsupportedEncodingException{  byte[] encodedByte = Base64.encodeBase64URLSafe(data.getBytes(ENCODING));  return new String(encodedByte, ENCODING);  }  /**  * URLBase64解密  */  public static String decode(String data) throws UnsupportedEncodingException{  byte[] decodedByte = Base64.decodeBase64(data.getBytes(ENCODING));  return new String(decodedByte, ENCODING);  }      /**  * 测试  * @param args  * @throws UnsupportedEncodingException  */  public static void main(String[] args) throws UnsupportedEncodingException {  String data = "这里是明文url";  System.out.println("原文-->"+data);  String encodedStr = UrlBase64Util.encode(data);  System.out.println("加密后-->"+encodedStr);  String decodedStr = UrlBase64Util.decode(encodedStr);  System.out.println("解密后-->"+decodedStr);  System.out.println(data.equals(decodedStr));  } }

让你长寿10年的24个健康好习惯大家好,我是要存钱又要精致生活的宋鹿笙。关注我,每天与你分享极简生活和省钱存钱干货。长寿,是每个人都梦寐以求的事情。除了遗传基因等先天因素,很多后天养成的习惯对健康和寿命影响也很大长寿的秘诀是什么?激活你体内长寿基因的三个小诀窍死亡是每个人最终不可避免会经历的事情。但最近的研究指出在对饮食运动和精神面貌方面进行合理的调整可以起到减缓衰老和减轻老年病症的效果。然而关于人类最长可以活多久这个问题,其实还是一直七种食物没保质期,即便存放很久也能吃,别再傻傻丢掉了健康是生命的本钱,健康是指两个方面身体精神都处于良好的状态,有较强的生活体能和劳动能力,这才是对健康最基本的要求。想要确保自身身体健康,强壮和精力非常重要,这反映了一个人的身体能力人过45,是养生黄金年龄,想身体健康,就要做到四戒45岁,是人生的一个转折点,这不仅是45岁后,人要开始进入衰老状态,身体上也会有很明显的变化,而在这个年龄,是养生的黄金年龄,如果在这个年龄能注意好好保养身体,那么,长寿可期,相反45岁后,劝你改掉这6个坏习惯,或拥有健康体质想要延长寿命需要在恰当的时候做正确的事情,养生工作做好,坚持良好习惯,可以增强免疫能力,同时延缓机体衰老,才能将疾病拒之门外。有的人之所以年纪轻轻各种疾病折磨源于不正确生活方式拖累人老了不应该多吃肉?建议3种肉不妨多吃,健康营养现在随着经济生活水平提高,人们生活质量是越来越好,对于养生话题也是越来越关注。大家普遍可以看到这样一个现象,如今高寿老人是逐年增多,甚至几天前新闻还报道过一个新闻,90多岁的老爷爷糖友均衡摄取这六大类食物,有利血糖控制糖尿病是近年来国人极为重视的疾病,被列为国人十大死亡原因之一。其相关并发症如肾病变伤口不易愈合等,不仅增加感染及死亡风险,所衍生的医疗处置也占了国家医疗支出上极大部分。近来研究发现裙子短了怎么加长好看?在裙子的修改中,改变裙长是最为普遍碰到的情况,因为市场上的成品裙装并非依自己的实际身材定制,所以,很多女生就会在实穿后改动一下裙子的长度。那么如果裙子短了怎么加长好看呢?这里给大家大S被曝再婚嫁韩国初恋男方是前酷龙成员具俊晔搜狐娱乐讯3月8日,据韩国媒体报道,Clon组合的具俊晔(53岁)和中国台湾演员徐熙媛大S(46岁)结为夫妻。据韩国媒体报道,具俊晔和大S最近完成了结婚登记。本报于本月初确认了两人关晓彤原来是微胖身材,穿裹胸小礼裙显肩宽,但形象气质仍在线裙装款式众多,但是能够选择适合自己的裙装款式,最大限度内进行个人魅力的释放才是最关键的。参考着个人的肤色以及身体形态,甚至是形象气质来匹配裙装款式,才是搭配过程中的重中之重。如何选芒晃村从产业单一到人均收入过万原标题美了美!芒晃村又双叒叕变身啦!从穷寨子到特色旅游村,从产业单一到人均收入过万,从无人问津到人们津津乐道,这些年芒晃村经历了一次又一次的华丽转身。2022年,新春伊始。走进芒晃
适合微胖女孩露腿穿搭,135斤博主亲自示范,真实又好看无论胖瘦,穿衣打扮的真正目的是让自己看起来再白一些高一些瘦一些,总之是怎么好看怎么穿。因此我们会翻阅大量的街拍杂志提升审美,技巧类文章也没少看,最后得出一套结论小个子不要穿长款,腿北京市文化市场综合执法总队组织召开暑期旅游市场秩序整治部署会为进一步统一思想,形成合力,持续打击旅游市场违法违规行为,纵深推进首都旅游市场秩序整治工作,不断规范和优化首都旅游市场环境,7月29日,北京市文化市场综合执法总队组织十六区文化市场日本开放旅游一个多月了,为什么7月的京都还是空无一人?日本恢复接纳外国游客入境已过去一个多月,但据日本出入国在留管理厅(ImmigrationServicesAgencyofJapa)的数据显示,6月10日至7月10日期间,日本总共只新版国标旅游度假区等级划分都有哪些变化8月1日,全国旅游标准化技术委员会发布旅游度假区等级划分国家标准(以下简称标准)修订解读。据了解,此次发布的标准较之前相比有8个主要变化。其中包括调整度假区面积明确度假产品数量强调山西省推出七大文旅主题季活动和晋享清凉五大板块内容,为游客献上夏日山西旅游攻略本报讯7月31日,晋享清凉活力一夏山西文化和旅游主题季活动在晋阳湖剧场启动。我省推出七大文旅主题季活动和晋享清凉五大板块内容,为游客献上夏日山西旅游攻略。活动由省文旅厅主办,旨在提适合微胖女孩露腿穿搭,135斤博主亲自示范,真实又好看无论胖瘦,穿衣打扮的真正目的是让自己看起来再白一些高一些瘦一些,总之是怎么好看怎么穿。因此我们会翻阅大量的街拍杂志提升审美,技巧类文章也没少看,最后得出一套结论小个子不要穿长款,腿北京市文化市场综合执法总队组织召开暑期旅游市场秩序整治部署会为进一步统一思想,形成合力,持续打击旅游市场违法违规行为,纵深推进首都旅游市场秩序整治工作,不断规范和优化首都旅游市场环境,7月29日,北京市文化市场综合执法总队组织十六区文化市场日本开放旅游一个多月了,为什么7月的京都还是空无一人?日本恢复接纳外国游客入境已过去一个多月,但据日本出入国在留管理厅(ImmigrationServicesAgencyofJapa)的数据显示,6月10日至7月10日期间,日本总共只新版国标旅游度假区等级划分都有哪些变化8月1日,全国旅游标准化技术委员会发布旅游度假区等级划分国家标准(以下简称标准)修订解读。据了解,此次发布的标准较之前相比有8个主要变化。其中包括调整度假区面积明确度假产品数量强调山西省推出七大文旅主题季活动和晋享清凉五大板块内容,为游客献上夏日山西旅游攻略本报讯7月31日,晋享清凉活力一夏山西文化和旅游主题季活动在晋阳湖剧场启动。我省推出七大文旅主题季活动和晋享清凉五大板块内容,为游客献上夏日山西旅游攻略。活动由省文旅厅主办,旨在提刻意练习这15种心态,找到自己最好的状态一个人的状态,决定了人生的状态。没有任何一个人可以一直停留在原地,我们终将会改变自己,找到自己的人生方向。刻意练习以下这15种心态,帮助自己找到最好的状态。01关注自己的情绪一个懂