Симетрично шифроване и модел Java AES - междинно, dev64

Програмиране

Java AES симетрично криптиране и модел на междинен резултат

Днес проектът трябваше спешно да закрепи HMAC хеширане и AES криптиране. Както обикновено в такива случаи, се случва да потърся нещо в гугъл, леко да го адаптирам и да го приложа. Връзка.

Леко модифициран код по-долу.

Създаден е клас AesCrypt. В конструктора се предава паролата за криптиране/дешифриране. След това тестовият низ се кодира с помощта на криптиране и дешифрира с помощта на дешифриране. Декриптираният се сравнява с оригинала за проверка.

По-долу е внедряването на AesCrypt клас и AesCryptException.

Използвайки този клас като пример, бих искал да демонстрирам и един модел на програмиране. Същността на модела е следната. Класът AesCrypt има 2 публични метода криптиране и декриптиране. И двата метода хвърлят обвивка AesException. Може да искате този клас да хвърли друго изключение или например да хвърли оригинални изключения или да игнорира изключения. Разбира се, най-лесният начин е просто да копирате класа във всеки конкретен случай и да го модифицирате при необходимост. Това обаче не е най-доброто решение. Има и друг подход. Пренапишете методите за криптиране и дешифриране, така че да върнат не резултата, а някакъв междинен обект - конструктора на резултатите. И вече този конструктор да прави функции, които работят по различни начини - хвърляне на изключения, игнориране на изключения, хвърляне на посоченото изключение. За това е удобно да използвате вложен обект: