package message_digest;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import org.apache.commons.codec.binary.Hex;import org.apache.commons.codec.digest.DigestUtils;import org.bouncycastle.crypto.Digest;import org.bouncycastle.crypto.digests.SHA1Digest;import org.bouncycastle.crypto.digests.SHA224Digest;import org.bouncycastle.crypto.digests.SHA256Digest;public class JavaSHA {private static String src = "object-oriente"; // 需要加密的原始字符串public static void main(String[] args) throws NoSuchAlgorithmException {System.out.println("原始字符串:" + src);jdkSHA1();bouncyCastleSHA1();commonsCodecSAH1();System.out.println();bouncyCastleSHA224();System.out.println();jdkSHA256();bouncyCastleSHA256();}/** JDK实现sha-1 */public static void jdkSHA1() throws NoSuchAlgorithmException {MessageDigest md = MessageDigest.getInstance("sha");// sha1算法传入参数为shabyte[] sha1Bytes = md.digest(src.getBytes());System.out.println("JDK SHA-1:\t" + Hex.encodeHexString(sha1Bytes));}/** JDK实现sha-256 */public static void jdkSHA256() throws NoSuchAlgorithmException{MessageDigest md = MessageDigest.getInstance("sha-256");md.update(src.getBytes());System.out.println("JDK SHA-256:\t" + org.bouncycastle.util.encoders.Hex.toHexString(md.digest()));}/** Bouncy Castle实现sha-1 */public static void bouncyCastleSHA1(){Digest digest = new SHA1Digest();digest.update(src.getBytes(), 0, src.getBytes().length);byte[]sha1Bytes = new byte[digest.getDigestSize()];digest.doFinal(sha1Bytes, 0);System.out.println("bc SHA-1:\t" + org.bouncycastle.util.encoders.Hex.toHexString(sha1Bytes));}/** Bouncy Castle实现sha-224 */public static void bouncyCastleSHA224(){Digest digest = new SHA224Digest();digest.update(src.getBytes(), 0, src.getBytes().length);byte[]sha224Bytes = new byte[digest.getDigestSize()];digest.doFinal(sha224Bytes, 0);System.out.println("bc SHA-224:\t" + org.bouncycastle.util.encoders.Hex.toHexString(sha224Bytes));}/** Bouncy Castle实现sha-256 */public static void bouncyCastleSHA256() {Digest digest = new SHA256Digest();digest.update(src.getBytes(), 0, src.getBytes().length);byte[] sha256Bytes = new byte[digest.getDigestSize()];digest.doFinal(sha256Bytes, 0);System.out.println("bc SHA-256:\t" + org.bouncycastle.util.encoders.Hex.toHexString(sha256Bytes));}/** Commons Codec实现sha-1 */public static void commonsCodecSAH1(){System.out.println("cc SHA-1:\t" + DigestUtils.sha1Hex(src.getBytes()));/* 采用下面的方式更加方便 */// System.out.println("cc SHA-1:\t" + DigestUtils.sha1Hex(src));}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。