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

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日跑步入场,1月以来净流入已接近2022年全年北向资金仍在跑步入场,连续十日净买入已超897亿元。1月17日,A股三大股指涨跌互现,北向资金却继续净流入92。88亿元。其中,沪股通净流入43。16亿元,深股通净流入49。72亿特斯拉上线微信小程序,可刷微博听书导读日前,特斯拉正式上线了微信小程序功能,并新增了新浪微博微信听书等小程序。(文潘昱辰编辑马媛媛)日前,特斯拉的车机系统迎来春节空中升级。在最新推送的2022。44。30。8版本中解读特斯拉降价后,哪些品牌车型会跟?速读看完买车多省几万块文懂车帝原创宋爱菊懂车帝原创行业2023年的时针刚走动没几圈,特斯拉就打响了降价第一枪,这给其他吆喝着国补退出涨价或平价销售的新能源品牌当头棒喝。降价这张牌要不要得起?能不能跟?成手机操作Soeasy!电子社保卡原来功能这么多,系列图解逐个手把手教你大家都缴社保很多人都有实体的社保卡但电子社保卡你申领了吗电子社保卡是社保卡线上应用的有效电子凭证与实体社保卡一一对应唯一映射现在电子社保卡已经具备了身份凭证信息记录自助查询缴费及待微信又添新功能!过年必备!新年将至无论你在哪里送祝福都少不了红包兔年春节微信带来春节红包玩法和福利是时候让我们扬眉兔气前兔似锦大展鸿兔了微信拜年红包上线微信升级至最新版本,你就可以在微信单聊对话框里使用拜年中国车主拿捏特斯拉?作者张冉冉赫晋一编辑付晓玲曹宾玲Reno数据支持洞见数据研究院来源表外表里(IDexcelers)封面来源视觉中国一向傲娇的特斯拉,正坐实价格屠夫称号。1月6日,特斯拉中国官网披露红米去年巅峰之作,来到今年后,12GB256GB120W跌到3099元如果你了解以前的红米手机就应该知道,大部分都是千元入门机型或百元机,虽然性价比也不低,但是体验和机身品质这些方面真的很差,使得不少米粉宁愿加价买旗舰手机。但是自从红米改名为Redm加入眼神交流功能,NVIDIA发布直播软件Broadcast1。4Broadcast是NVIDIA旗下的直播软件,可以充分利用NVIDIA显卡的AI算力,提供各种实用功能,例如噪音消除背景替换等,可将任何房间变为家庭工作室,将直播语音聊天和视频会规矩的威力人常说没有规矩不成方圆,这句一点毛病没有。自从世界上有了人类,便就有了从简单到繁多的规矩。从起码的尊长到爱幼,再换得幼能尊长,形成了一个相互相成的生息关系,自然就有了规矩。大则从国作文素材人民时评精彩60句1。人类只有一个地球,人类也只有一个共同的未来。2。键对键不能代替面对面。3。命是自己的,运却和整个国家相关联。4。正步人生,从未稍息。5。星光不问赶路人,历史属于奋斗者。6。一寸促进互联网新风气,共创文明树新风责编老钱致敬默默搬运转发信息的朋友,致敬不遗余力写文发文的朋友,致敬勇于发声呐喊呼号的朋友,致敬关注时事关注底层的朋友我们从未后悔过,这是许多从事这个行业的选择,虽说不伟大,也不高
游戏中生代崛起这十年研发卷起来了,玩家更挑剔了在近十年的游戏界不可忽视的一股新势力,是以上海F4为代表的游戏中生代。虽然这个名号至今有许多争议,也并不完全,但它的确代表了像米哈游莉莉丝叠纸鹰角沐瞳趣加等一类中生代游戏企业的崛起粉丝们少些阴谋论吧!林高远全面落选,心理素质差才是最大原因2023年WTT球星挑战赛果阿站的比赛,将在月底开打,国乒的参赛名单也已出炉,共有13人参加,其中,男女单打名额给了樊振东,马龙以及孙颖莎,陈梦其余9位国乒选手参加双打项目。这其中陈数深夜与神秘男子外出,两人拥抱几十秒举止亲密,粉丝发文澄清近日,有八卦媒体在社交平台上晒出知名演员陈数与一位神秘男子外出的画面,也是曝光了陈数的近况引来,而且当时两人的举动也是比较亲密的,一时间引来无数媒体和网友的关注与热议。在视频中,当没想到它竟然这么灵活!特斯拉Cybertruck绕桩视频曝光爱卡汽车海外新车原创你绝对想象不到特斯拉Cybertruck有多灵活!马斯克前不久明确表示特斯拉Cybertruck将于今年夏季投产,而新车的测试相信正在紧锣密鼓的进行中,最新曝光OneCode开源低代码引擎白皮书一,背景随着低代码概念的火热,相关的技术及产品也是层出不穷,不管是老牌行业软件厂商还是开放平台厂商,不论是互联网行业企业SAAS软件新动向还是新兴的低代码创新产品服务,都在第一时间联合引擎吉利熊猫mini竞争力分析,才200km续航需要快充吗?大家好,这里是联合引擎,一个在破产边缘徘徊的汽车小媒体。今天的竞争力分析,我们来看看一款全新的A00级家轿吉利熊猫mini。2月6日,吉利熊猫mini正式上市,新车的价格区间在3。这个种草力超强的博主,为啥建议粉丝少买?用久病成医来形容美妆垂类头部博主Dailycici,似乎再合适不过。本想去韩国做医美变更美,谁知却掉进爆痘脱皮屏障受损的烂脸噩梦。在求医问药修护屏障的过程中,cici决定做短视频账一款制作数学函数动画的视频引擎数学或者计算机方面,有很多的数学公式或者算法,算法之间呢有一些步骤和转换过程,有些过程通过文字没有那么好描述,但是如果可以通过动画的形式,把转化过程可视化出来,相信可以让受众更容易将游戏中的古物建造带入现实,传统文化体验正在积极拥抱大众商业消费场景中华优秀传统文化日渐重回主流视野,从传统影视到游戏品类,都有对传统文化题材的挖掘与创新。而随着新年伊始线下经济的复苏,传统文化迎来与线下各类场景融合的爆发期。除了在线上营造优秀民俗Forspoken官方发文听到玩家意见我们会改的!Forspoken官方发布来自游戏总监荒牧岳志的消息,文中表示,已经收到玩家们的各种意见建议,未来计划通过更新来对游戏内容做出改善。包括提升游戏整体表现改善部分画质进一步提升操作性吃苹果别乱吃,一定要避开这3个时间,对身体不好,早知道早受益人们常说一天一苹果,医生远离我,现在春天来了,正是吃苹果的大好季节,苹果的营养价值高,口感好,酸酸甜甜的非常好吃。苹果里面富含膳食纤维维生素以及多种营养物质,对人体非常有益。每天坚