Android中Base64加密

最近集成第三方sdk时须要Basic Authentication认证,在用Base64加密作签权的时候用Base64.DEFAULT一直不能签权成功,最后用Base64.NO_WRAP成功了。 
后来查了一下缘由,原来使用Base64.DEFAULT当字符串过长(通常超过76)时会自动在中间加一个换行符,字符串最后也会加一个换行符,这样就致使和其余模块对接时结果不一致,因而签权失败。而Base64.NO_WRAP 这个参数意思是略去全部的换行符,所以签权成功。 
所以Android端使用Base64加密解密时应使用Base64.NO_WRAP。 
其余几种加密解密方式的含义:加密

CRLF:这个参数看起来比较眼熟,它就是Win风格的换行符,意思就是使用CR LF这一对做为一行的结尾而不是Unix风格的LF

DEFAULT:这个参数是默认,使用默认的方法来加密

NO_PADDING:这个参数是略去加密字符串最后的“=”

NO_WRAP:这个参数意思是略去全部的换行符(设置后CRLF就没用了)

URL_SAFE:这个参数意思是加密时不使用对URL和文件名有特殊意义的字符来做为加密字符,具体就是以-和_取代+和/
相关文章
相关标签/搜索