List of usage examples for org.bouncycastle.crypto.digests MD4Digest MD4Digest
public MD4Digest()
From source file:android.core.CryptoTest.java
License:Apache License
/** * Tests the MD4 implementation./*from w ww . ja va 2 s . co m*/ */ @MediumTest public void testMD4() { Digest oldDigest = new MD4Digest(); Digest newDigest = OpenSSLMessageDigest.getInstance("MD4"); doTestMessageDigest(oldDigest, newDigest); }
From source file:edu.vt.middleware.crypt.digest.MD4.java
License:Open Source License
/** Creates an uninitialized instance of an MD4 digest. */ public MD4() { super(new MD4Digest()); }
From source file:edu.vt.middleware.crypt.digest.MD4.java
License:Open Source License
/** * Creates a new MD4 digest that may optionally be initialized with random * data.//from w ww. j ava2 s . co m * * @param randomize True to randomize initial state of digest, false * otherwise. * * @throws CryptException if the algorithm is not available from any * provider or the provider is not available in the environment */ public MD4(final boolean randomize) throws CryptException { super(new MD4Digest()); if (randomize) { setRandomProvider(new SecureRandom()); setSalt(getRandomSalt()); } }
From source file:edu.vt.middleware.crypt.digest.MD4.java
License:Open Source License
/** * Creates a new MD4 digest and initializes it with the given salt. * * @param salt Salt data used to initialize digest computation. * * @throws CryptException if the algorithm is not available from any * provider or the provider is not available in the environment *///from w ww . j ava2 s.c om public MD4(final byte[] salt) throws CryptException { super(new MD4Digest()); setSalt(salt); }
From source file:HashMe.MD4.java
License:Apache License
public static byte[] Enc(String data) throws Exception { byte[] r = data.getBytes(); MD4Digest d = new MD4Digest(); d.update(r, 0, r.length);/*from w ww. j a v a 2 s . co m*/ byte[] o = new byte[d.getDigestSize()]; d.doFinal(o, 0); return Hex.encode(o); }
From source file:org.alfresco.jlan.client.J2MEPasswordEncryptor.java
License:Open Source License
/** * Encrypt the plain text password with the specified encryption key using the specified * encryption algorithm.// w w w .ja v a 2s . c o m * * @param plainPwd Plaintext password string * @param encryptKey byte[] Encryption key * @param alg int Encryption algorithm * @return byte[] Encrypted password * @exception NoSuchAlgorithmException If a required encryption algorithm is not available */ public byte[] generateEncryptedPassword(String plainPwd, byte[] encryptKey, int alg) throws NoSuchAlgorithmException { // Get the password String pwd = plainPwd; if (pwd == null) pwd = ""; // Determine the encryption algorithm byte[] encPwd = null; MD4Digest md4 = null; int len = 0; byte[] pwdBytes = null; switch (alg) { // LanMan DES encryption case LANMAN: encPwd = P24(pwd, encryptKey); break; // NTLM v1 encryption case NTLM1: // Create the MD4 hash md4 = new MD4Digest(); try { pwdBytes = pwd.getBytes("UnicodeLittleUnmarked"); } catch (UnsupportedEncodingException ex) { } md4.update(pwdBytes, 0, pwdBytes.length); byte[] p21 = new byte[21]; md4.doFinal(p21, 0); // Now use the LM encryption encPwd = P24(p21, encryptKey); break; // NTLM v2 encryption case NTLM2: break; // MD4 encryption case MD4: // Create the MD4 hash md4 = new MD4Digest(); len = pwd.length(); pwdBytes = new byte[len * 2]; for (int i = 0; i < len; i++) { char ch = pwd.charAt(i); pwdBytes[i * 2] = (byte) ch; pwdBytes[i * 2 + 1] = (byte) ((ch >> 8) & 0xFF); } md4.update(pwdBytes, 0, pwdBytes.length); encPwd = new byte[16]; md4.doFinal(encPwd, 0); break; } // Return the encrypted password return encPwd; }
From source file:org.alfresco.jlan.client.J2MEPasswordEncryptor.java
License:Open Source License
/** * Generate a session key using the specified password and key. * * @param plainPwd Plaintext password string * @param encryptKey byte[] Encryption key * @param alg int Encryption algorithm * @return byte[] Encrypted password * @exception NoSuchAlgorithmException If a required encryption algorithm is not available *//*from ww w . ja v a 2 s . co m*/ public byte[] generateSessionKey(String plainPwd, byte[] encryptKey, int alg) throws NoSuchAlgorithmException { // Create the session key for the specified algorithm byte[] sessKey = null; MD4Digest md4 = null; String pwd = plainPwd; if (pwd == null) pwd = ""; switch (alg) { // NTLM session key case NTLM1: // Get the password bytes byte[] pwdBytes = new byte[pwd.length() * 2]; for (int i = 0; i < pwd.length(); i++) { char ch = plainPwd.charAt(i); pwdBytes[i * 2] = (byte) ch; pwdBytes[i * 2 + 1] = (byte) ((ch >> 8) & 0xFF); } // Create the MD4 hash md4 = new MD4Digest(); md4.update(pwdBytes, 0, pwdBytes.length); byte[] pt1 = new byte[16]; md4.doFinal(pt1, 0); md4.update(pt1, 0, pt1.length); sessKey = new byte[40]; md4.doFinal(sessKey, 0); // Second part of the session key contains the NTLM hashed password byte[] ntlmHash = generateEncryptedPassword(plainPwd, encryptKey, NTLM1); System.arraycopy(ntlmHash, 0, sessKey, 16, 24); break; } // Return the session key return sessKey; }
From source file:org.candlepin.util.X509CRLStreamWriter.java
License:Open Source License
protected static Digest createDigest(AlgorithmIdentifier digAlg) throws CryptoException { Digest dig;//from ww w . j a v a 2 s. co m if (digAlg.getAlgorithm().equals(OIWObjectIdentifiers.idSHA1)) { dig = new SHA1Digest(); } else if (digAlg.getAlgorithm().equals(NISTObjectIdentifiers.id_sha224)) { dig = new SHA224Digest(); } else if (digAlg.getAlgorithm().equals(NISTObjectIdentifiers.id_sha256)) { dig = new SHA256Digest(); } else if (digAlg.getAlgorithm().equals(NISTObjectIdentifiers.id_sha384)) { dig = new SHA384Digest(); } else if (digAlg.getAlgorithm().equals(NISTObjectIdentifiers.id_sha512)) { dig = new SHA384Digest(); } else if (digAlg.getAlgorithm().equals(PKCSObjectIdentifiers.md5)) { dig = new MD5Digest(); } else if (digAlg.getAlgorithm().equals(PKCSObjectIdentifiers.md4)) { dig = new MD4Digest(); } else { throw new CryptoException("Cannot recognize digest."); } return dig; }
From source file:org.cryptacular.spec.DigestSpec.java
License:Open Source License
/** * Creates a new digest instance.//from w w w . j a v a 2 s. c o m * * @return Digest instance. */ @Override public Digest newInstance() { final Digest digest; if ("GOST3411".equalsIgnoreCase(algorithm)) { digest = new GOST3411Digest(); } else if ("MD2".equalsIgnoreCase(algorithm)) { digest = new MD2Digest(); } else if ("MD4".equalsIgnoreCase(algorithm)) { digest = new MD4Digest(); } else if ("MD5".equalsIgnoreCase(algorithm)) { digest = new MD5Digest(); } else if ("RIPEMD128".equalsIgnoreCase(algorithm) || "RIPEMD-128".equalsIgnoreCase(algorithm)) { digest = new RIPEMD128Digest(); } else if ("RIPEMD160".equalsIgnoreCase(algorithm) || "RIPEMD-160".equalsIgnoreCase(algorithm)) { digest = new RIPEMD160Digest(); } else if ("RIPEMD256".equalsIgnoreCase(algorithm) || "RIPEMD-256".equalsIgnoreCase(algorithm)) { digest = new RIPEMD256Digest(); } else if ("RIPEMD320".equalsIgnoreCase(algorithm) || "RIPEMD-320".equalsIgnoreCase(algorithm)) { digest = new RIPEMD320Digest(); } else if ("SHA1".equalsIgnoreCase(algorithm) || "SHA-1".equalsIgnoreCase(algorithm)) { digest = new SHA1Digest(); } else if ("SHA224".equalsIgnoreCase(algorithm) || "SHA-224".equalsIgnoreCase(algorithm)) { digest = new SHA224Digest(); } else if ("SHA256".equalsIgnoreCase(algorithm) || "SHA-256".equalsIgnoreCase(algorithm)) { digest = new SHA256Digest(); } else if ("SHA384".equalsIgnoreCase(algorithm) || "SHA-384".equalsIgnoreCase(algorithm)) { digest = new SHA384Digest(); } else if ("SHA512".equalsIgnoreCase(algorithm) || "SHA-512".equalsIgnoreCase(algorithm)) { digest = new SHA512Digest(); } else if ("SHA3".equalsIgnoreCase(algorithm) || "SHA-3".equalsIgnoreCase(algorithm)) { digest = new SHA3Digest(size); } else if ("Tiger".equalsIgnoreCase(algorithm)) { digest = new TigerDigest(); } else if ("Whirlpool".equalsIgnoreCase(algorithm)) { digest = new WhirlpoolDigest(); } else { throw new IllegalStateException("Unsupported digest algorithm " + algorithm); } return digest; }
From source file:org.jcryptool.visual.hashing.views.HashingView.java
License:Open Source License
private String computeHash(String hashName, String inputText, Text hashText) { hash = hash.getName(hashName);/*from ww w . j a v a 2 s . c o m*/ byte[] digest = null; switch (hash) { case MD2: MD2Digest md2 = new MD2Digest(); md2.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[md2.getDigestSize()]; md2.doFinal(digest, 0); break; case MD4: MD4Digest md4 = new MD4Digest(); md4.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[md4.getDigestSize()]; md4.doFinal(digest, 0); break; case MD5: MD5Digest md5 = new MD5Digest(); md5.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[md5.getDigestSize()]; md5.doFinal(digest, 0); break; case SHA1: SHA1Digest sha1 = new SHA1Digest(); sha1.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[sha1.getDigestSize()]; sha1.doFinal(digest, 0); break; case SHA256: SHA256Digest sha256 = new SHA256Digest(); sha256.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[sha256.getDigestSize()]; sha256.doFinal(digest, 0); break; case SHA512: SHA512Digest sha512 = new SHA512Digest(); sha512.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[sha512.getDigestSize()]; sha512.doFinal(digest, 0); break; case SHA3_224: SHA3.Digest224 sha3_224 = new SHA3.Digest224(); sha3_224.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[sha3_224.getDigestLength()]; digest = sha3_224.digest(); break; case SHA3_256: SHA3.Digest256 sha3_256 = new SHA3.Digest256(); sha3_256.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[sha3_256.getDigestLength()]; digest = sha3_256.digest(); break; case SHA3_384: SHA3.Digest384 sha3_384 = new SHA3.Digest384(); sha3_384.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[sha3_384.getDigestLength()]; digest = sha3_384.digest(); break; case SHA3_512: SHA3.Digest512 sha3_512 = new SHA3.Digest512(); sha3_512.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[sha3_512.getDigestLength()]; digest = sha3_512.digest(); break; case SKEIN_256: Skein.Digest_256_256 skein_256 = new Skein.Digest_256_256(); skein_256.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[skein_256.getDigestLength()]; digest = skein_256.digest(); break; case SKEIN_512: Skein.Digest_512_512 skein_512 = new Skein.Digest_512_512(); skein_512.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[skein_512.getDigestLength()]; digest = skein_512.digest(); break; case SKEIN_1024: Skein.Digest_1024_1024 skein_1024 = new Skein.Digest_1024_1024(); skein_1024.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[skein_1024.getDigestLength()]; digest = skein_1024.digest(); break; case RIPEMD160: RIPEMD160Digest ripemd160 = new RIPEMD160Digest(); ripemd160.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[ripemd160.getDigestSize()]; ripemd160.doFinal(digest, 0); break; case SM3: SM3Digest sm3 = new SM3Digest(); sm3.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[sm3.getDigestSize()]; sm3.doFinal(digest, 0); break; case TIGER: TigerDigest tiger = new TigerDigest(); tiger.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[tiger.getDigestSize()]; tiger.doFinal(digest, 0); break; case GOST3411: GOST3411Digest gost3411 = new GOST3411Digest(); gost3411.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[gost3411.getDigestSize()]; gost3411.doFinal(digest, 0); break; case WHIRLPOOL: WhirlpoolDigest whirlpool = new WhirlpoolDigest(); whirlpool.update(inputText.getBytes(), 0, inputText.getBytes().length); digest = new byte[whirlpool.getDigestSize()]; whirlpool.doFinal(digest, 0); break; default: break; } String hashHexValue = new String(Hex.encode(digest)); if (btnHexadezimal.getSelection()) { String hashValueOutput = hashHexValue.toUpperCase().replaceAll(".{2}", "$0 "); //$NON-NLS-1$ //$NON-NLS-2$ hashText.setText(hashValueOutput); } else if (btnDezimal.getSelection()) { String hashValue = hexToDecimal(hashHexValue); hashValue = hashValue.replaceAll(".{3}", "$0 "); //$NON-NLS-1$ //$NON-NLS-2$ hashText.setText(hashValue); } else if (btnBinary.getSelection()) { String hashValue = hexToBinary(hashHexValue); hashValue = hashValue.replaceAll(".{8}", "$0#"); //$NON-NLS-1$ //$NON-NLS-2$ hashText.setText(hashValue); } return hashHexValue; }