...
Code Block | ||
---|---|---|
| ||
SecretKey key = KeyGenerator.getInstance("DES").generateKey(); Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.ENCRYPT_MODE, key); // Encode bytes as UTF8; strToBeEncrypted contains // the input string // that is to be encrypted byte[] encoded = strToBeEncrypted.getBytes("UTF8"); // Perform encryption byte[] encrypted = cipher.doFinal(encoded); |
...
This compliant solution uses the more secure Advanced Encryption Standard (AES) algorithm to perform the encryption. Decryption follows similar logic and has been omitted from this discussion.
Code Block | ||
---|---|---|
| ||
Cipher cipher = Cipher.getInstance("AES"); KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgen.init(128); // 192 and 256 bits may be unavailable SecretKey skey = kgen.generateKey(); byte[] raw = skey.getEncoded(); SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); cipher.init(Cipher.ENCRYPT_MODE, skeySpec); // Encode bytes as UTF8; strToBeEncrypted contains // the input string // that is to be encrypted byte[] encoded = strToBeEncrypted.getBytes("UTF8"); // Perform encryption byte[] encrypted = cipher.doFinal(encoded); |
...
Weak cryptographic algorithms may be used in scenarios that specifically call for a breakable cipher. For instance example, the ROT13 cipher is commonly used on bulletin boards and web sites when the purpose of encryption is to protect people from the information , rather than protect information from the people.
Bibliography
[Oracle 2011a] | Appendix D: Disabling Cryptographic Algorithms |
[Oracle 2013b 2012b] | Java Cryptography Architecture (JCA) Reference Guide |
...