비밀 암호화에는 지속적인 암호화가 필요하며 현재 암호화는 MD5를 사용합니다. 대칭 암호화를 사용하면 DES 방법이 사용됩니다
java.security import Sun.Misc.BaseEncoder; ; String resulttring = null {resultstring = data); resultString; evualtring; xff) {bf.append ( "t"); 키 값 * @param data * @param 키 암호화 키 바이트 배열 * @return * @throws 예외 */ public static string desencrypt (문자열 데이터, 문자열 키) 예외 {if (key == null) {key = key; } bt [] bt = encrypt (), key.getBytes ()); param data * @param 키 암호화 키 바이트 배열 * @return * @throws ioexception * @throws 예외 */ public static string desdedecrypt (문자열 data, 문자열 키)는 ioexc 에피소드, 예외 {if (data == null) {return null } if (key = key = key); ); return new String (bt)}; @param data에 따라 암호화 * @param 키 바이트 배열 * @return * @Throws Exception * / private static byte [] DATA, BYTE [] 키) 예외 {// 신뢰할 수있는 랜덤 숫자 Securerandom Sr = 새로운 Securerandom (); Key Factory를 사용하여 Deskeyspec을 SecretKeyFactory keyfactory로 변환합니다 cipher.getinstance (des); param data * @param 키 암호화 키 바이트 배열 * @return * @Throws Exception */ private static byte [] decrypt (byte [] data, byte [] key) 예외 {// 신뢰할 수있는 무작위 번호 소스 Securerandom sr = 생성 새로운 SEC URERANDOM ()에서 Deskeyspec Dks = New Deskeyspec (key)를 만듭니다. des); secretkey secure.generatesecret (dks); 반환 cipher.do final (data)}};아래는 Java에서 MD5 암호화 및 암호 해독 클래스를 구현하기위한 코드를 소개합니다.
Java는 테스트 클래스를 통해 MD5 암호화 및 암호 해독 클래스를 구현하여 자세한 내용은 코드를 참조하십시오.
MD5 암호화 및 암호 해독 클래스 -MyMd5util, 코드는 다음과 같습니다.
Com.zyg.security.md5; 정적 최종 문자열 HEX_NUMS_STR = "0123456789ABCDEF"; = (hex.length () / 2); pos = i * 2; 결과 [i] = (byte) (hex_nums_str.indexof (hexchars [pos]) << 4 | hex_nums_str.indexof (pos + 1]); 지정된 바이트 배열을 16 진수로 변환 * @param b * @return */ public static string bytetohexstring (byte [] b) {stringbuffer hexstring = new StringBuffer (); i ++) {string hex = integer.toHexString (b [i] & 0xff); : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : * @param passwordindb * @return * @throws nosuchalgorithmexception * @ @throws unsupportedencodingexception */public static boolean validpassword (String password, string passwordIndb) nosuchalgorithmexception, 헥스 포맷 암호를 aray array byte로 변환하지 않습니다. hexstringtobyte (Password Indb); // 소금 변수를 선언합니다. [salt_length]; ); // 메시지를 만듭니다. MessageGest.getInstance ( "md5"); : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 소금 데이터는 메시지 Digest 객체에 전달됩니다. UPDATE (SALT); 입력 암호 바이트 [] Digest = Md.Digest (); 데이터베이스 시스템에서 비밀번호의 메시지 digest.arraycopy (pwdindb, salt_length, 0, digestindb.length); arrays.equals (digest, digestindb)) {// 암호 일치 메시지를 올바르게 반환합니다 16 진수 비밀번호 * @return * @throws nosuchalgorithm Exception * @throws unsupportedencodingexception * /public static getencryptedpwd (string password)는 nosuchalgorithmexception, incupportedencodingexception {// declare varive a incry guled; Random Number Securerandom random = new securerandom (); Object MessageSt Md = NULL; Object Md.update (password.getBytes ( "utf-8")); 비밀번호, 소금 PWD의 바이트 길이 = 새로운 바이트 [digest.length.length.length.length + salt_length]; , 0, pwd, 0, salt_length); // 13 번째 바이트 시스템에서 시작하는 암호화 된 암호 바이트 배열 (digest, 0, pwd, salt_length, digest.length); 암호 암호화 바이트 배열 형식에 비밀번호를 반환합니다.테스트 클래스 - 클라이언트, 코드는 다음과 같습니다.
com.zyg.security.md5; public static void main (문자열 username = "123"; ); String loginuserid = "zyg"; ou t. println. / TODO 자동 생성 캐치 블록 e.printstacktrace ()}}; 등록 된 사용자 * @param username * / public static void RegisterUser (문자열 사용자 이름, String Pas Sword) {String EncryptedPwd = null; incryptedpwd = mymd5util. / TODO 자동 생성 캐치 블록 e.printstacktrace ()}}}; verification login * @param username * @Throws UnsupportedEncodingException * @throws nos uchalgorithmexception * / public boolean loginvalid. 사용자 이름, String Password) Nosuchalgorithmexception, UnsupportedEncodingException {String pwdindb = (string) (username); System.out.println ( "이 사용자가 존재하지 않습니다! ! ! "); return false;}}}