javaBase64和UrlBase64
整理下工作中常用到的加密解密算法和使用场景一、Base64和UrlBase64
二、Md5salt
二、对称加密
四、非对称加密
一、Base64和UrlBase64
1Base64
定义:严格意义上讲属于一种编解码方式;
使用64个通用的可打印字符来存储和表示二进制字数据,同时也可以进行简单的加密,生成不可读文本。
字符集范围:
〔A,B,C,。。。a,b,c,。。。0,1,。。。,‘〕
大小写字母,0到9,共65个,作为后缀填充
使用场景:简单加密
网络数据传输:url、cookie、网页中传输二进制数据
密钥存储
数字证书存储
实现方式CommonsCodec(简称CC推荐使用)
BouncyCastle(简称BC)
JDK(不推荐使用,内部api后期存在移除风险)
CC方式实现
引入jar包dependencygroupIdcommonscodecgroupIdcommonscodecartifactIdversion1。15versiondependency
实现及测试类packagecom。util。base64;importjava。io。UnsupportedEncodingException;importorg。apache。commons。codec。binary。Base64;基于CommonsCodec的Base64加密publicclassBase64Util{privatestaticfinalStringENCODINGUTF8;一般Base64加密publicstaticStringencode(Stringdata)throwsUnsupportedEncodingException{byte〔〕encodedByteBase64。encodeBase64(data。getBytes(ENCODING));returnnewString(encodedByte,ENCODING);}安全Base64加密publicstaticStringencodeSafe(Stringdata)throwsUnsupportedEncodingException{注意:这里采用的encodeBase64(byte〔〕bytes,booleanarg1)arg1为true时,加密后的字符串每行为76个字符,不论每行够不够76个字符,都要在行尾添加rbyte〔〕encodedByteBase64。encodeBase64(data。getBytes(ENCODING),true);returnnewString(encodedByte,ENCODING);}Base64解密publicstaticStringdecode(Stringdata)throwsUnsupportedEncodingException{byte〔〕decodedByteBase64。decodeBase64(data。getBytes(ENCODING));returnnewString(decodedByte,ENCODING);}测试paramargsthrowsUnsupportedEncodingExceptionpublicstaticvoidmain(String〔〕args)throwsUnsupportedEncodingException{测试一般encodeStringdata这句是明文原文;System。out。println(原文data);StringencodedStrBase64Util。encode(data);System。out。println(加密后encodedStr);StringdecodedStrBase64Util。decode(encodedStr);System。out。println(解密后decodedStr);System。out。println(data。equals(decodedStr));System。out。println();测试安全encodeStringdata2这句是明文原文这句是明文原文;System。out。println(原文data2);StringencodedStr2Base64Util。encodeSafe(data2);System。out。println(加密后encodedStr2);StringdecodedStr2Base64Util。decode(encodedStr2);System。out。println(解密后decodedStr2);System。out。println(data2。equals(decodedStr2));}}
2UrlBase64
定义:由于标准的Base64编码后可能出现字符和,在URL中就不能直接作为参数,所以又有一种urlsafe的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加密解密packagecom。util。base64;importjava。io。UnsupportedEncodingException;importorg。apache。commons。codec。binary。Base64;基于CommonsCodec的URLBase64加密publicclassUrlBase64Util{privatestaticfinalStringENCODINGUTF8;URLBase64加密publicstaticStringencode(Stringdata)throwsUnsupportedEncodingException{byte〔〕encodedByteBase64。encodeBase64URLSafe(data。getBytes(ENCODING));returnnewString(encodedByte,ENCODING);}URLBase64解密publicstaticStringdecode(Stringdata)throwsUnsupportedEncodingException{byte〔〕decodedByteBase64。decodeBase64(data。getBytes(ENCODING));returnnewString(decodedByte,ENCODING);}测试paramargsthrowsUnsupportedEncodingExceptionpublicstaticvoidmain(String〔〕args)throwsUnsupportedEncodingException{Stringdata这里是明文url;System。out。println(原文data);StringencodedStrUrlBase64Util。encode(data);System。out。println(加密后encodedStr);StringdecodedStrUrlBase64Util。decode(encodedStr);System。out。println(解密后decodedStr);System。out。println(data。equals(decodedStr));}}
去日本旅行,酒店厕所多一条管子是干嘛用的?女游客听了后红了脸一说到日本,大家就会想到以前他们对我们所做的一切恶行,确实,只要他们一天没有道歉,我们中国人一天都不能够原谅。不过如果扯开这些恩怨不说的话,日本还是有很多值得我们去学习的地方的,就
打卡如诗如画的初冬景致禾木村是新疆维吾尔自治区布尔津县下辖的一座村庄,位于新疆布尔津县喀纳斯湖畔,总面积3040平方公里。其是图瓦人的集中生活居住地,是仅存的3个图瓦人村落(禾木村喀纳斯村白哈巴村)中最
西蜀第一海,滋养了一池美味星罗棋布的岛屿一碧万顷的湖水连绵起伏的山峦烟波浩渺的云雾这里是远近闻名的川西第一海黑龙滩风光美食的组合不仅擦亮了仁寿的名片更凭借其知名度让各地的朋友领略到了陵州的风光一起来瞧瞧吧摄
西藏颂,邱承彬诗集,山东教育出版社出版,二十四节气诗大全西藏颂作者邱承彬珠穆朗玛,世界屋脊。雅鲁藏布,梵天之子。布达拉宫,建筑奇迹。萨迦古城,人文晨曦。松赞干布,武功文治。文成公主,和亲大使。贡噶坚赞,阔端王兮。凉州会谈,华夏统一。雪山
内蒙古的远古文明居然有这么多,厉害了作为内蒙人你知道在自己生活的这片土地,古往今来有多少文明部落存在过吗?今天我们就从这片土地上最开始文明部落开始数一数,在这片辽阔壮美的土地上,这些星星点点的部落文明火种如何逐步汇集
闲话谍战风云从风筝潜伏悬崖剧名看人物结局风筝潜伏悬崖三部优秀的谍战剧,风格各异,却都有着好口碑,谁更胜一筹更是众说纷纭,各执一词。风筝更多的是讲人性讲信仰。风筝这部剧可以说描绘了一位中共特工的浮沉史。风筝所蕴含的信息和内
入冬发现不兴穿尖头靴了,今年都在穿鸭嘴靴,复古又洋气意大利著名鞋履设计师GianvitoRossi说过这样一句话如果女人是一幅美丽惊艳的画作,那么鞋子就是这幅画的画框。画作固然好看,可若是没有与之匹配的精致画框,那么整幅画作的美感将
未来可期!世界级重大文旅项目将落户新洲好消息世界级主题公园和度假区将要落户新洲了2022中国北欧经贸合作论坛暨世界500强对话湖北活动11月22日,2022中国北欧经贸合作论坛暨世界500强对话湖北系列活动在武汉开幕。
头条每日一游明十三陵亲爱的朋友,历史总是惊人的相似,却各有不同。就和今天要游览的明十三陵,作为人死后的住所,自古以来就充满了神秘和诡异。无论是荒山野岭的野冢,还是规模庞大的皇家陵墓,都会使人产生敬畏。
博雅视野丨旧厂房华丽变身!大连熊洞街开启城市更新新模式一个建筑面积不到1万平,开业面积不足6000平的城市更新项目,试营业2个月客流突破25万,抖音小红书等短视频平台2。3亿曝光量,连续上了3次央视新闻位于大连冰山慧谷的熊洞街项目,以
贵州水司楼因造型怪被热议,昔日烂尾楼改为四星级酒店,原貌全无前言三年前,有两个造型奇特的建筑物因为热议成为红网地,其中一个叫水司楼,位于贵州省黔南州的独山县。我们这次跨年自驾游正巧路过这里,网传水司楼正在被拆除,好奇心促使我想看看水司楼现在