K
krzysztof.murkowski
Hi,
I'm trying to encript simple text with PBE key which is generated from
the password.
This code is generating the same output for the different passwords.
What's wrong?
Thanks a lot for your help,
Krzysztof
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
public class Test05
{
public static void main( String args[] ) throws Exception
{
/*
byte[] salt = {
(byte)0xA9, (byte)0x9B, (byte)0xC8, (byte)0x32,
(byte)0x56, (byte)0x35, (byte)0xE3, (byte)0x03
};
int iterationCount = 19;
*/
String password = "password";
// String password = "different password";
// PBEKeySpec keySpec = new PBEKeySpec( password.toCharArray(), salt,
iterationCount, 8 );
PBEKeySpec keySpec = new PBEKeySpec( password.toCharArray() );
System.out.println( "keySpec: " + keySpec.getPassword() );
SecretKeyFactory keyFactory =
SecretKeyFactory.getInstance( "PBE" );
System.out.println( "keyFactory: " + keyFactory.getAlgorithm() );
SecretKey key = keyFactory.generateSecret( keySpec );
System.out.println( "key: " + key.getAlgorithm() );
Cipher cipher = Cipher.getInstance( key.getAlgorithm() );
System.out.println( "cipher.getInstance" );
cipher.init( Cipher.ENCRYPT_MODE, key );
System.out.println( "cipher.init" );
String input = "open text to be encrypted";
System.out.println( cipher.doFinal( input.getBytes() ) );
}
}
I'm trying to encript simple text with PBE key which is generated from
the password.
This code is generating the same output for the different passwords.
What's wrong?
Thanks a lot for your help,
Krzysztof
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
public class Test05
{
public static void main( String args[] ) throws Exception
{
/*
byte[] salt = {
(byte)0xA9, (byte)0x9B, (byte)0xC8, (byte)0x32,
(byte)0x56, (byte)0x35, (byte)0xE3, (byte)0x03
};
int iterationCount = 19;
*/
String password = "password";
// String password = "different password";
// PBEKeySpec keySpec = new PBEKeySpec( password.toCharArray(), salt,
iterationCount, 8 );
PBEKeySpec keySpec = new PBEKeySpec( password.toCharArray() );
System.out.println( "keySpec: " + keySpec.getPassword() );
SecretKeyFactory keyFactory =
SecretKeyFactory.getInstance( "PBE" );
System.out.println( "keyFactory: " + keyFactory.getAlgorithm() );
SecretKey key = keyFactory.generateSecret( keySpec );
System.out.println( "key: " + key.getAlgorithm() );
Cipher cipher = Cipher.getInstance( key.getAlgorithm() );
System.out.println( "cipher.getInstance" );
cipher.init( Cipher.ENCRYPT_MODE, key );
System.out.println( "cipher.init" );
String input = "open text to be encrypted";
System.out.println( cipher.doFinal( input.getBytes() ) );
}
}