MD5Util 방법
패키지 com.funcanteen.business.action.pay.util; 수입 java.security.MessageDigest의; Public 클래스 MD5Util { 개인 정적 스트링 byteArrayToHexString (바이트 B []) { StringBuffer를 resultSb = 새의 StringBuffer (); 대해 INT (I = 0; I는를 <b.length를, 난 ++) resultSb.append (byteToHexString (b [I])); () resultSb.toString를 리턴; } 개인 정적 문자열 byteToHexString (바이트 b) { INT N = B; 경우 (N <0) , N + = 256; INT (D1) = N / 16; INT D2 = N의 16 %; hexDigits [D1] + hexDigits [D2]을 리턴; } 공공 정적 스트링 MD5Encode (문자열 원점 문자열 charsetname) { 문자열 resultString = NULL; 시도 { resultString = 새로운 문자열 (원점); MessageDigest 등 MD = MessageDigest.getInstance ( "MD5"); 경우 (charsetname == 널 || "".equals (charsetname)) resultString = byteArrayToHexString (md.digest (resultString .getBytes ())); 다른 resultString = byteArrayToHexString (md.digest (resultString .getBytes (charsetname))); } 캐치 (예외 예외) { } resultString를 반환; } 개인 정적 최종 문자열 hexDigits [] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", " A ","B ","C ","D ","E ","F "}; }
2 : 서명 포장 방법
//设置签名 공공 문자열 getSignature (지도 <문자열, 문자열>지도) { StringBuffer를 SB = 새로운 StringBuffer를 (); 대한 (의 Map.Entry <문자열, 문자열> 나 : map.entrySet는 ()) { . sb.append (me.getKey ()) ( "=")를 추가 & "(추가 (me.getValue은 ()) 추가.. "); } sb.append ( "키 =")에 추가 ( 'XXXXXXXXXXXXXXXXXXXX. "); MD5Util.MD5Encode (sb.toString (), NULL) 반환; }
3 : 콜 서명 방법
//要发送给用户的模板信息 트리 맵 <문자열, 문자열> = josnMap 새로운 트리 맵 <문자열, 문자열> (); josnMap.put ( "이름", stallApply.getAccountName ()); 문자열 jsonData = JSON.toJSONString (josnMap); //封装组装签名 지도 <문자열, 문자열>지도 = 새로운 트리 맵 <문자열, 문자열> (); 문자열 타임 스탬프 = System.currentTimeMillis는 () / 1000 + ""; map.put ( "JSON", jsonData); map.put ( "모바일"stallApply.getMobile ()); map.put ( "templateCode", "SMS_74665033"); map.put ( "타임 스탬프", 타임 스탬프);
MD5Util 방법
패키지 com.funcanteen.business.action.pay.util; 수입 java.security.MessageDigest의; Public 클래스 MD5Util { 개인 정적 스트링 byteArrayToHexString (바이트 B []) { StringBuffer를 resultSb = 새의 StringBuffer (); 대해 INT (I = 0; I는를 <b.length를, 난 ++) resultSb.append (byteToHexString (b [I])); () resultSb.toString를 리턴; } 개인 정적 문자열 byteToHexString (바이트 b) { INT N = B; 경우 (N <0) , N + = 256; INT (D1) = N / 16; INT D2 = N의 16 %; hexDigits [D1] + hexDigits [D2]을 리턴; } 공공 정적 스트링 MD5Encode (문자열 원점 문자열 charsetname) { 문자열 resultString = NULL; 시도 { resultString = 새로운 문자열 (원점); MessageDigest 등 MD = MessageDigest.getInstance ( "MD5"); 경우 (charsetname == 널 || "".equals (charsetname)) resultString = byteArrayToHexString (md.digest (resultString .getBytes ())); 다른 resultString = byteArrayToHexString (md.digest (resultString .getBytes (charsetname))); } 캐치 (예외 예외) { } resultString를 반환; } 개인 정적 최종 문자열 hexDigits [] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", " A ","B ","C ","D ","E ","F "}; }
2 : 서명 포장 방법
//设置签名 공공 문자열 getSignature (지도 <문자열, 문자열>지도) { StringBuffer를 SB = 새로운 StringBuffer를 (); 대한 (의 Map.Entry <문자열, 문자열> 나 : map.entrySet는 ()) { . sb.append (me.getKey ()) ( "=")를 추가 & "(추가 (me.getValue은 ()) 추가.. "); } sb.append ( "키 =")에 추가 ( 'XXXXXXXXXXXXXXXXXXXX. "); MD5Util.MD5Encode (sb.toString (), NULL) 반환; }
3 : 콜 서명 방법
//要发送给用户的模板信息 트리 맵 <문자열, 문자열> = josnMap 새로운 트리 맵 <문자열, 문자열> (); josnMap.put ( "이름", stallApply.getAccountName ()); 문자열 jsonData = JSON.toJSONString (josnMap); //封装组装签名 지도 <문자열, 문자열>지도 = 새로운 트리 맵 <문자열, 문자열> (); 문자열 타임 스탬프 = System.currentTimeMillis는 () / 1000 + ""; map.put ( "JSON", jsonData); map.put ( "모바일"stallApply.getMobile ()); map.put ( "templateCode", "SMS_74665033"); map.put ( "타임 스탬프", 타임 스탬프);