tisdag, oktober 10, 2006

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.

måndag, oktober 09, 2006

OpenID

Du vet Microsoft Passport? Skaffa ett konto hos Pyttemjuk, så funkar det på många sajter. OpenID är samma tänk, single sign-on osv, fast utan beroende av en enda drakonisk leverantör.

Jag har skaffat ett OpenID, på en webbplats som heter myopenid.com. Om OpenID-konsortiet försvinner, så gör det inget, mitt ID finns kvar. Om myopenid.com försvinner, så gör det inget, jag kan behålla mitt ID, fast får gå till en annan leverantör.

Ingen utom jag kontrollerar mitt OpenID! Det är det viktiga.

Hälsningar ola.berg.myopenid.com .

En som vet vad han talar om

Jag misstänker att Mark Baker är en man som vet vad han talar om: nämligen webben som plattform. Läs och ta del!