This is a created article in which the information may have evolved or changed.
For MD5 encryption, the only thing to note is that after encrypting Base64 encryption, Android uses its own standard util library, be sure to set the no Fill method, the encryption results into Base64. As shown below:
- Java
MessageDigest md5 = null; try { md5 = MessageDigest.getInstance("MD5"); md5.update(val.getBytes()); byte[] m = md5.digest();//加密 // BASE64Encoder encoder = new BASE64Encoder(); //血坑!!!!!!!!!!!!! return Base64.encodeToString(m,Base64.NO_WRAP); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return null;
- Go
func MD5(src string)(string) { md5Ctx := md5.New() md5Ctx.Write([]byte(src)) cipherStr := md5Ctx.Sum(nil) fmt.Print(cipherStr) return base64.StdEncoding.EncodeToString(cipherStr)}
After Android uses MD5 encryption, and then encrypted with Android standard BASE64, there will be one more line break, and my approach is to Base64.encodeToString(m,Base64.NO_WRAP); set no padding to solve the above problem.