JAVA-MD5 and Oracle-MD5

2634 단어 자바OacleF#Security
자바 MD5 암호 화 문자열 생 성 방법 1:
public static String getMD5(byte[] source) {
		String s = null;
		char hexDigits[] = 
		{ //          16        
		'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd','e', 'f' };
		try {
			long t1 = System.currentTimeMillis();
			java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
			md.update(source);
			byte tmp[] = md.digest(); // MD5          128      ,
			//         16    
			char str[] = new char[16 * 2]; //       16       ,      ,
			//       16      32    
			int k = 0; //               
			for (int i = 0; i < 16; i++) { //         ,  MD5       
				//     16        
				byte byte0 = tmp[i]; //    i    
				str[k++] = hexDigits[byte0 >>> 4 & 0xf]; //       4       ,
				// >>>      ,        
				str[k++] = hexDigits[byte0 & 0xf]; //       4       
			}
			s = new String(str); //            
			long t2 = System.currentTimeMillis();
			System.out.println("method1 cost time:" +(t2-t1));
		} catch (Exception e) {
			e.printStackTrace();
		}
		return s;
	}

자바 MD5 암호 화 문자열 생 성 방법 2:
public static String getMD5_2(byte[] source) {
		String s = null;
		try {
			long t1 = System.currentTimeMillis();
			java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
			md.update(source);
			byte tmp[] = md.digest(); // MD5          128      ,
			StringBuilder sb = new StringBuilder();
			for (byte b : tmp) {
				sb.append(String.format("%02X", b));
			}
			s = sb.toString();
			long t2 = System.currentTimeMillis();
			System.out.println("method2 cost time:" +(t2-t1));
		} catch (Exception e) {
			e.printStackTrace();
		}
		return s;
	}

Oracle 데이터베이스 에서 일련의 유일한 자릿수 고정 열 을 만 드 는 데 사용 할 수 있 습 니 다.
CREATE OR REPLACE function md5(input_string VARCHAR2) return varchar2 
IS 
raw_input RAW(1024) := UTL_RAW.CAST_TO_RAW(input_string); 
decrypted_raw RAW(2048); 
error_in_input_buffer_length EXCEPTION; 
BEGIN 
sys.dbms_obfuscation_toolkit.MD5(input => raw_input, checksum => decrypted_raw); 
return lower(rawtohex(decrypted_raw)); 
END; 

좋은 웹페이지 즐겨찾기