Dags för lite kryptografi i Java igen. Det går så långt mellan varven nu att jag glömmer bort hur man gör :-/
Den här gången är det 3DES som ska implementeras.
Först skapar jag nyckeln (från 24 slumpmässiga bytes, från random.org), och de två chifferobjekten.
//the key, from 24 random bytes ("_keyData") _key = SecretKeyFactory .getInstance("TripleDES") .generateSecret( new DESedeKeySpec( _keyData)); //the cipher objects for encryption and decryption _encryptor = Cipher.getInstance( "TripleDES"); _encryptor.init( Cipher.ENCRYPT_MODE, _key); _decryptor = Cipher.getInstance( "TripleDES"); _decryptor.init( Cipher.DECRYPT_MODE, _key);
Att kryptera och dekryptera är sedan lätt:
//encrypt a byte[] byte[] encryptedData = _encryptor.doFinal( cleartextData); //decrypt a byte[] byte[] decryptedData = _decryptor.doFinal( encryptedData); //cleartextData and encryptedData is now the same!
Det luriga ligger som vanligt i att försöka få tag i och installera en provider. Jag använder helst den helfria BouncyCastle här.
Men i detta fallet använder jag den medföljande implementationen av 3DES.
Algoritmnamnen ja... usch vad många gånger det har blivit fel. När man skrivit "3DES" istället för "TripleDES" till exempel.
Inga kommentarer:
Skicka en kommentar