教程集 www.jiaochengji.com
教程集 >  脚本编程  >  java  >  正文 解决Base64.encodeBase64String换行回车问题

解决Base64.encodeBase64String换行回车问题

发布时间:2016-10-15   编辑:jiaochengji.com
教程集为您提供解决Base64.encodeBase64String换行回车问题等资源,欢迎您收藏本站,我们将为您提供最新的解决Base64.encodeBase64String换行回车问题资源
Base64.encodeBase64String加密时各位会发现如果有换行会出现问题了,今天我们来看一篇关于Base64.encodeBase64String换行回车问题的解决办法吧。

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

据RFC 822规定,每76个字符,还需要加上一个回车换行

就因为这些换行弄得出了问题,解决办法如下,替换所有换行和回车

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环境下不存在此问题

/**
 * 电商Sign签名生成
 * @param data 内容  
 * @param appkey Appkey
 * @return DataSign签名
 */
function encrypt($data, $appkey) {
    return urlencode(base64_encode(md5($data.$appkey)));
}

您可能感兴趣的文章:
解决Base64.encodeBase64String换行回车问题
php textarea换行符的方法
golang中图片转base64_Base64编码原理概要
mysqlbinlog把mysql二进制文件转换文本文件
python换行符是什么
php表单中转换textarea换行符的方法
php url编码与解码(加密/解密)
php过滤或替换textarea换行回车\r\n的2种方法
Windows 7输入法不能切换,只能打英文解决办法
html5使用canvas压缩图片的示例代码

[关闭]
~ ~