[编码解码] 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和文件名有特殊意义的字符来作为加密字符,具体就是以-和_取代+和/

分类:  编码解码
本文转自demoblog博客园博客,原文链接http://www.cnblogs.com/0616--ataozhijia/p/4314409.html如需转载请自行联系原作者

demoblog
相关文章
|
Web App开发 应用服务中间件 Go
尝鲜:如何搭建一个简单的webrtc服务器
前几天我一朋友问我有关webrtc的事,简单了解了下相关知识,搭建了一个webrtc的服务,以及经历的各种踩坑事件,感觉踩坑主要是Python、Node、OpenSSL等版本问题和证书问题导致。本来以为很简单的搭建,但在搭建的过程中遇到各种阻碍,写一篇文章梳理一下。
12860 0
|
Ubuntu
LLVM编译源码
LLVM编译源码
384 0
java代码实现使用网络地址下载文件
java代码实现使用网络地址下载文件
474 0
|
Java Maven
解决Maven中CANNOT Resolve XXX错误
解决Maven中CANNOT Resolve XXX错误
1104 0
|
开发者 Python
【Python】已解决:(Python3中pip无法安装urllib报错问题) ERROR: Could not find a version that satisfies the requireme
【Python】已解决:(Python3中pip无法安装urllib报错问题) ERROR: Could not find a version that satisfies the requireme
1220 0
【Python】已解决:(Python3中pip无法安装urllib报错问题) ERROR: Could not find a version that satisfies the requireme
|
Android开发
Android APP 隐藏系统软键盘的方法
Android APP 隐藏系统软键盘的方法
386 0
|
运维 Kubernetes 监控
阿里云 ACK 云上大规模 Kubernetes 集群高可靠性保障实战
本文基于 ACK 稳定性保障实践经验,帮助用户全面理解 ACK 稳定性理论和优化策略,并了解如何使用相应的工具和服务进行稳定性保障。
185139 23
Linux中的Base64编码与解码:`base64`命令详解
Linux的`base64`命令用于Base64编码和解码文本数据,常在邮件和HTTP中传输二进制信息。编码示例:`base64 input.txt`,解码示例:`base64 -d encoded.txt`或`echo "SGVsbG8sIFdvcmxkIQo=" | base64 -d`。注意,编码后数据会增大33%,且可能含换行符。广泛应用于多种系统和协议,如MIME。
|
算法 计算机视觉
OTSU(大津算法)
OTSU(大津算法)
|
安全 数据安全/隐私保护
如何为 Mosquitto MQTT Broker 配置 MQTT TLS 和基于证书的授权
如何为 Mosquitto MQTT Broker 配置 MQTT TLS 和基于证书的授权
2156 1