base64加密后,一行最多76个字符,超过76个字符,会添加换行符\r\n。
例:
base64加密后 :
eyJtZXJjaGFudE5hbWUiOiLkuK3nlLXnjrrlrqIiLCJub3RpZmljYXRpb25UaXRsZSI6Iua1i+iv
lemAmuefpSIsIm1zZ1RpdGxlIjoi5aSp5rCU6YCa55+lIiwibXNnQ29udGVudCI6IuS7iuaXpeaZ
tCIsInN5c05hbWUiOiJhcHBuYW1lIiwidXNlcklkIjoiMTUyMTAwMDYzNDciLCJtZXJjaGFudElk
IjoiOTg3NjUiLCJ3YXBVcmwiOiJ3d3cuYmFpZHUuY29tIn1ENzFEM0JFQ0M1OTAyNEZFRDQ4RDJB
MzgxRDYzNjRCNw==
以上base64等同于:
String str = "eyJtZXJjaGFudE5hbWUiOiLkuK3nlLXnjrrlrqIiLCJub3RpZmljYXRpb25UaXRsZSI6Iua1i+iv\r\n" +
"lemAmuefpSIsIm1zZ1RpdGxlIjoi5aSp5rCU6YCa55+lIiwibXNnQ29udGVudCI6IuS7iuaXpeaZ\r\n" +
"tCIsInN5c05hbWUiOiJhcHBuYW1lIiwidXNlcklkIjoiMTUyMTAwMDYzNDciLCJtZXJjaGFudElk\r\n" +
"IjoiOTg3NjUiLCJ3YXBVcmwiOiJ3d3cuYmFpZHUuY29tIn1ENzFEM0JFQ0M1OTAyNEZFRDQ4RDJB\r\n" +
"MzgxRDYzNjRCNw==";
去掉换行符:
String dataBase64 = dataBase64Str.replaceAll("[\\s*\t\n\r]","");
String dataBase64 = (new sun.misc.BASE64Encoder()).encode( dataSrc.getBytes());
dataBase64 = dataBase64.replaceAll("[\\s*\t\n\r]","");
String md5Encode = MD5Util.MD5Encode(dataBase64).toUpperCase();
\n 回车(\u000a)
\t 水平制表符(\u0009)
\s 空格(\u0008) \s* 表示任意个空格
\r 换行(\u000d)