
hudson.plugins.mysql.crypt.Cipher Maven / Gradle / Ivy
The newest version!
/**
* The person or persons who have associated work with this document (the
* "Dedicator" or "Certifier") hereby either (a) certifies that, to the best of
* his knowledge, the work of authorship identified is in the public domain of
* the country from which the work is published, or (b) hereby dedicates
* whatever copyright the dedicators holds in the work of authorship identified
* below (the "Work") to the public domain. A certifier, moreover, dedicates any
* copyright interest he may have in the associated work, and for these
* purposes, is described as a "dedicator" below.
*
* A certifier has taken reasonable steps to verify the copyright status of this
* work. Certifier recognizes that his good faith efforts may not shield him
* from liability if in fact the work certified is not in the public domain.
*
* Dedicator makes this dedication for the benefit of the public at large and to
* the detriment of the Dedicator's heirs and successors. Dedicator intends this
* dedication to be an overt act of relinquishment in perpetuity of all present
* and future rights under copyright law, whether vested or contingent, in the
* Work. Dedicator understands that such relinquishment of all rights includes
* the relinquishment of all rights to enforce (by lawsuit or otherwise) those
* copyrights in the Work.
*
* Dedicator recognizes that, once placed in the public domain, the Work may be
* freely reproduced, distributed, transmitted, used, modified, built upon, or
* otherwise exploited by anyone for any purpose, commercial or non-commercial,
* and in any way, including by methods that have not yet been invented or
* conceived.
*/
package hudson.plugins.mysql.crypt;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* This class produces an encrypted string based upon the selected cipher or
* digest method.
*
* @author Alex Ackerman
*/
public class Cipher
{
/**
* Digest algorithm names from the Java Cruptography Architecture Standard
* Algorithm Name Documentation found at the following address:
*
* http://java.sun.com/javase/6/docs/technotes/guides/security/StandardNames.html
*
*/
public static final String MD5 = "MD5";
public static final String SHA1 = "SHA-1";
public static final String SHA256 = "SHA-256";
public static final String SHA384 = "SHA-384";
public static final String SHA512 = "SHA-512";
public static final String CRYPT = "Crypt";
public Cipher(String type)
{
this.encryptionMethod = type;
salt = null;
}
public Cipher(String type, String salt)
{
this.encryptionMethod = type;
this.salt = salt;
}
public String encode(String plaintext) throws EncryptionException
{
if ((salt != null) || encryptionMethod.equals(this.CRYPT))
{
return JCrypt.crypt(salt, plaintext);
}
else
{
try
{
MessageDigest md = MessageDigest.getInstance(encryptionMethod);
md.reset();
byte[] textBytes = plaintext.getBytes();
md.update(textBytes);
return md.toString();
}
catch (NoSuchAlgorithmException ex)
{
throw new EncryptionException();
}
}
}
private String encryptionMethod;
private String salt;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy