Много раз для тайного шифрования требуется постоянное шифрование, а в настоящее время шифрование в настоящее время использует MD5. При использовании симметричного шифрования используется метод DES
Импорт java.ioexception; ; "; частная конечная статическая строка md =" md "; private final Static String key =" opeddsaeaddadbcabf "; / ** * MD Algorithm * @param data * @return * / public String String mdencrypt (String Data) { Результаты results = null; Результаты xfl) <x) {bf.append ("t"); В значении ключа * @param Data * @param клавиш клавиши шифрования клавиши байфтов * @return * @throhs Exception */ public Static String Desencrypt (String Data, String Key) Throws Exception {if (key == null) {key = key; } byte [] bt = incrypt (data.getbytes (), key.getbytes ()); DATA DATA * @PARAM КЛЮЧ КЛЮЧ КЛЮЧЕВОЙ КЛЮЧЕВОЙ КЛЮЧЕВОЙ КЛЮЧЕВОЙ МАРЛ * @return * @Throws ioException * @Throws Exception */ public Static String DesdeCrypt (String Data, String Key) Throws IOExc Episod ; вернуть новую строку (bt);} / ** * ] d ata, byte [] key) выбрасывает исключение {// генерировать надежный источник случайного числа Securerandom sr = new Securerandom (); Создайте ключевую фабрику, затем используйте его, чтобы преобразовать Deskeyspec в SecretKey ObjectQueFactory KeyFactory = SecretKeyFactory.getInstance (DES); Cipher.getinstance (des); DATA PARAM * @param ключа клавиши клавиша клавиши байфта * @return * @throhs Exception */ private Static Byte [] Decrypt (byte [] data, byte [] key) бросает исключение {// Создание надежного источника случайного числа Securerandom sr = new sec urerandom (); DES); );Ниже я представлю кусок кода для внедрения классов шифрования и дешифрования MD5 в Java
Java реализует классы шифрования и дешифрования MD5, с помощью тестовых классов, см. Код для деталей.
Класс шифрования и дешифрования MD5 - mymd5util, код заключается в следующем:
Пакет Com.zyg.security.md5; Статическая конечная строка hex_nums_str = "0123456789abcdef"; = (Hex.length () / 2); POS = I * 2; Преобразовать указанный байтовый массив в шестнадцатеричную строку * @param b * @return */ public Static String Bytetohexstring (byte [] b) {stringbuffer hexstring = new Stringbuffer (); i ++) {string hex = integer.tohexstring (b [i] & 0xfl); ::::::::::::::::: ::::::::::::::::: ::::::::::::: * @param passwordIndb * @return * @Throws nosuchAlgoritHmexception * @бросает UnsupportedEncodingException */public Static Boolean valyPassword (String Password, StringIndb) бросает Nosuchalgorithmexcept hexstringtobyte (пароль indb); ); ::::::::::::::::: ::::::::::::::::: : Данные соли передаются в объект Digest Md.update (Salt); из входного пароля байт [] digest = md.digest (); Расстроение сообщений пароля в системе базы данных. Arraycopy (pwdindb, salt_length, digestindb, 0, digestindb.length); Arrays.equals (Digest, DighestIndb)) {// Пароль правильно возвращает сообщение о сопоставлении пароля True; HexAdecimal пароль * @param пароль * @return * @throws nosuchalgorithm Exception * @Throws UnsupportEdencodingException * /Public Static String getEncryptedPwd (String Passwer). Случайный генератор Securerandom ancome = new Securerandom (); ObjectIgest MD = NULL; Object Md.Update (Password.getBytes ("UTF-8"); пароль, добавьте байт длины соли PWD = новый байт [Digest.Length + Salt_length]; , 0, pwd, 0, salt_length); Формат массива пароля для пароля.Тестовый класс - Клиент, код выглядит следующим образом:
Пакет com.zyg.security.md5; ; ); OU T. / Todo Автопогнированный блок e.printstacktrace (); try {incryptedpwd = mymd5util. / Todo Автопогенерированный блок улова e.printstacktrace (); Имя пользователя, String Password) Throws Nosuchalgorithmexception, UnsupportedEncodingexception {String pwdindb = (String) users.get (username); System.out.println («Не существует этого пользователя! ! ! "); вернуть false;}}}