[编码解码] Base64 编码换行和+号遍空格的处理

Android自身带有Base64加密与解密的包,可以方便地加密密码方便传输。

String base64Token = Base64.encodeToString(token.trim().getBytes(), Base64.NO_WRAP);

byte[] mmmm = Base64.decode(base64Token,Base64.DEFAULT);

在用Base64加密做签权的时候用Base64.DEFAULT一直不能签权成功。最后用Base64.NO_WRAP成功了。

看起来用法与Java所带的sun.misc的Base64Encoder这些用法差不多,但应该留意到了,在encode的时候,会有一个参数Flags(即上面代码中的Base64.DEFAULT)

这个参数有什么用呢?根据Android SDK的描述,这种参数有5个:

  1. CRLF 这个参数看起来比较眼熟,它就是Win风格的换行符,意思就是使用CR LF这一对作为一行的结尾而不是Unix风格的LF
  2. DEFAULT 这个参数是默认,使用默认的方法来加密
  3. NO_PADDING 这个参数是略去加密字符串最后的”=”
  4. NO_WRAP 这个参数意思是略去所有的换行符(设置后CRLF就没用了)
  5. URL_SAFE 这个参数意思是加密时不使用对URL和文件名有特殊意义的字符来作为加密字符,具体就是以-和_取代+和/
时间: 2024-12-14 15:51:35

[编码解码] Base64 编码换行和+号遍空格的处理的相关文章

C#解码base64编码二进制数据的方法

在Convert类的静态方法Convert.FromBase64String,可以讲base64编码的字符串解码为等效的byte []数组. using System; static class MyModClass { public static byte[] Base64DecodeString(this string inputStr) { byte[] decodedByteArray = Convert.FromBase64String(inputStr); return (decod

C#解码base64编码的二进制数据的代码

将做工程过程常用的代码片段做个珍藏,下边代码段是关于C#解码base64编码的二进制数据的代码.using System;static class MyModClass{public static byte[] Base64DecodeString(this string inputStr){byte[] decodedByteArray = Convert.FromBase64String(inputStr);return (decodedByteArray);}} 原文地址:https://

powershell -enc参数无法解码base64编码payload的解决方案

powershell的-enc参数允许传入一个base64编码过的powershell脚本字符串作为参数来执行该powershell脚本,该方法常被用于绕过杀毒软件的主动防御机制. 今天下午在做一个后门程序时,通过在线base64编码网站编码的字符串竟然没法被powershell的-enc参数解析,解析时全是乱码,通过查找资料终于解决了这个问题 故将这个问题记录下来以备后续使用 方法引用自:http://www.pstips.net/question/5827.html 可以使用如下脚本,对所需

编码解码--url编码解码

url编码解码,又叫百分号编码,是统一资源定位(URL)编码方式.URL地址(常说网址)规定了常用地数字,字母可以直接使用,另外一批作为特殊用户字符也可以直接用(/,:@等),剩下的其它所有字符必须通过%xx编码处理. 现在已经成为一种规范了,基本所有程序语言都有这种编码,如js:有encodeURI.encodeURIComponent,PHP有 urlencode.urldecode等.编码方法很简单,在该字节ascii码的的16进制字符前面加%. 如 空格字符,ascii码是32,对应16

C#中图片转换为Base64编码,Base64编码转换为图片

#region 图片转为base64编码的字符串 public string ImgToBase64String(string Imagefilename) { try { Bitmap bmp = new Bitmap(Imagefilename); MemoryStream ms = new MemoryStream(); bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] arr = new byte[ms.Lengt

[C语言]Base64编码解码

Base64编码解码 一,Base64编码原理 Base64编码的字符数组如下所示 : ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ 字符串转Base64编码:取3字节的字符串转换为四字节的字符串,依次往后转换.得到Base64编码字符串.具体原理如下: 1,如果需要编码的原串字节数刚好为3的倍数,那么转换规则如下: 以中文字符'严'为例,'严'字的UTF-8编码为:0xE4B8A5 = 11100100  10

Base64编码解码原理

一.编码规则 Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码.它将需要编码的数据拆分成字节 数组.以3个字节为一组.按顺序排列24 位数据,再把这24位数据分成4组,即每组6位.再在每组的的最高位前 补两个0凑足一个字节.这样就把一个3字节为一组的数据重新编码成了4个字节.当所要编码的数据的字节数不是 3的整倍数,也就是说在分组时最后一组不够3个字节.这时在最后一组填充1到2个0字节.并在最后编码完成后在 结尾添加1到2个 "=". 例:将对ABC进行BA

C#实现Base64编码与解码

一.编码规则      Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码.它将需要编码的数据拆分成字节数组.以3个字节为一组.按顺序排列24 位数据,再把这24位数据分成4组,即每组6位.再在每组的的最高位前补两个0凑足一个字节.这样就把一个3字节为一组的数据重新编码成了4个字节.当所要编码的数据的字节数不是3的整倍数,也就是说在分组时最后一组不够3个字节.这时在最后一组填充1到2个0字节.并在最后编码完成后在结尾添加1到2个 “=”. 例:将对ABC进行BASE64

Base64编码原理与应用

本文内容转自网络,如需详细内容,请参考相关网址. http://my.oschina.net/goal/blog/201032 代码参考:http://blog.csdn.net/prsniper/article/details/7097643 Base64,它用作把任意序列的8位字节描述为一种不易被人直接识别的形式,常用作开发中用于传递参数.浏览器的img标签通过base64字符串来渲染图片以及电子邮件的正文编码等等. 在计算机中显示的字符,比如英文字母.数字以及英文标点符号就是用一个字节来存