Base64.encodeBase64String换行回车解决方法

星期四, 2016-02-18 | Author: Lee | JAVA-and-J2EE | 9,661 views

在做接口对接的时候老是报签名错误,一步一步跟踪到原来是Base64出的问题,记录下:

据RFC 822规定,每76个字符,还需要加上一个回车换行
就因为这些换行弄得出了问题,解决办法如下,替换所有换行和回车

1
2
3
4
5
private static String base64(String str, String charset) throws UnsupportedEncodingException {
		String encoded = Base64.encodeBase64String(str.getBytes(charset));
		encoded = encoded.replaceAll("[\\s*\t\n\r]", "");
		return encoded;
	}

小计:在php环境下不存在此问题

1
2
3
4
5
6
7
8
9
/**
 * 电商Sign签名生成
 * @param data 内容   
 * @param appkey Appkey
 * @return DataSign签名
 */
function encrypt($data, $appkey) {
    return urlencode(base64_encode(md5($data.$appkey)));
}

Tags:

文章作者: Lee

本文地址: https://www.pomelolee.com/1544.html

除非注明,Pomelo Lee文章均为原创,转载请以链接形式标明本文地址

No comments yet.

Leave a comment

Search

文章分类

Meta