Package org.jivesoftware.util
Class Blowfish
java.lang.Object
org.jivesoftware.util.Blowfish
- All Implemented Interfaces:
Encryptor
A class that provides easy Blowfish encryption.
- Author:
- Markus Hahn <markus_hahn@gmx.net>, Gaston Dombiak
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionDecrypt an encrypted String.Decrypt an encrypted String.decryptString(String sCipherText) decrypts a hexbin string (handling is case-sensitive)voiddestroy()destroys (clears) the encryption engine, after that the instance is not valid anymoreEncrypt a clear text String.Encrypt a clear text String.encryptString(String sPlainText) Encrypts a string (treated in UNICODE).voidSets the password to be used for encryption/decryption using the KDF configured in security.xml.voidSets the password to be used for encryption/decryption with an explicit KDF.
-
Constructor Details
-
Blowfish
public Blowfish()Creates a new Blowfish object using the default key -
Blowfish
Creates a new Blowfish object using the specified key (oversized password will be cut).- Parameters:
password- the password (treated as a real unicode array)
-
-
Method Details
-
encryptString
Encrypts a string (treated in UNICODE).- Parameters:
sPlainText- string to encrypt- Returns:
- encrypted string in binhex format
-
decryptString
decrypts a hexbin string (handling is case-sensitive)- Parameters:
sCipherText- hexbin string to decrypt- Returns:
- decrypted string (null equals an error)
-
destroy
public void destroy()destroys (clears) the encryption engine, after that the instance is not valid anymore -
encrypt
Description copied from interface:EncryptorEncrypt a clear text String. -
encrypt
Description copied from interface:EncryptorEncrypt a clear text String. -
decrypt
Description copied from interface:EncryptorDecrypt an encrypted String. -
decrypt
Description copied from interface:EncryptorDecrypt an encrypted String. -
setKey
Sets the password to be used for encryption/decryption using the KDF configured in security.xml. -
setKey
Sets the password to be used for encryption/decryption with an explicit KDF. This overload is primarily used during migration from SHA1 to PBKDF2, where we need two Blowfish instances with different KDFs operating simultaneously (one to decrypt with SHA1, one to encrypt with PBKDF2).- Parameters:
key- The password to use for encryptionkdf- The key derivation function to use ("sha1" or "pbkdf2")- Since:
- 5.1.0
-