Java md5签名出现位数错误情况
2017-03-02 10:34
337 查看
问题
在Android 客户端对接口数据签名验证时,遇到了md5签名少0的情况,导致签名也正不通过。
解决
代码如下:/** * 对字符串进行32位签名 * @param value * @return * @throws NoSuchAlgorithmException */ public static String md5Encrypt(String value) throws NoSuchAlgorithmException { MessageDigest digester = MessageDigest.getInstance("MD5"); digester.reset(); return bytes2HexString(digester.digest(value.getBytes())); } /** * 二进制转十六进制String * @param bytes * @return */ private static String bytes2HexString(byte[] bytes) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < bytes.length; i++) { //方法一 int val = ((int)bytes[i]) & 0xff; if(val < 16) { sb.append("0"); //当转换十进制,会忽略掉前面的"0" } sb.append(Integer.toHexString(val)); //方法二 /*String s = Integer.toHexString(b[i] & 0xff); if (s.length() == 1) { sb.append("0"); } sb.append(s);*/ } return sb.toString(); }
相关文章推荐
- 出现R.java文件不见了的情况,或者R.java导入错误
- 出现Error: could not find java 2 Runtime Environment错误的处理!!
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- java.io.CharConversionException: isHexDigit 出现错误的原因及其解决办法
- java 访问Access 出现的连接错误
- java.sql.SQLException: ORA-00917: 缺少逗(log4j在数据库中插入相应信息时出现了此错误)
- 运行java.exe 出现Registry key 'Software/JavaSoft/Java Runtime Environment/CurrentVersion'错误的解决。(原创)
- heibernate 出现如下错误:java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit
- jsp+java分页出现错误
- 装vs2005 sp1 出现错误 1718。文件被数字签名策略拒绝
- ubuntu 运行Java应用程序出现Permission denied 错误
- 出现java.lang.UnsupportedClassVersionError 错误的原因
- 卸载myeclipse5.5时出现"载入java VM时windows出现错误3"
- 安装vs2005 sp1 出现错误 1718。文件被数字签名策略拒绝
- java中出现如下错误解决方法:
- 出现java.lang.NullPointerException此类错误
- 安装vs2005 sp1 出现错误 1718。文件被数字签名策略拒
- 命令行Dos下编译、运行java文件是出现has value '1.4', but '1.6' is required.错误
- 大家告诉我要怎么改才行。 JAVA中出现环境变量错误
- 使用Cisco Network assistant时出现“Could not create Java Virtual machine”错误