Golang MD5算法与 java(android)的互通
16lz
2021-01-26
对MD5加密来说,惟一要注意的就是加密完的Base64加密后,Android使用自己的标准util库时,一定要设置无填充方式,加密结果转成base64。如下所示:
- 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)}
Android使用md5加密后,再用android标准的Base64加密后,最后会多一个换行符,我的处理方法是,Base64.encodeToString(m,Base64.NO_WRAP);
设置不填充可以解决上述问题。
更多相关文章
- CrossWalk项目main_delegate类的问题
- Hardcoded string "xxxxxxxxxxxx", should use @string resource
- android ui 遇到的问题汇总
- android 点击获取验证码显示倒计时并不可用
- Android(安卓)Studio使用技巧
- Android(安卓)应用第一次运行时,引导页面的设置方法(只让程序Aciti
- android 学习四 加载图片
- Android用户界面 UI组件--TextView及其子类(三) EditView以及各
- android spinner自定义背景文字显示不全解决办法