美文网首页
java各种加密

java各种加密

作者: jasonlu1208 | 来源:发表于2017-11-02 12:49 被阅读0次
    
    importorg.apache.commons.codec.binary.Base64;
    
    importjavax.crypto.KeyGenerator;
    
    importjavax.crypto.Mac;
    
    importjavax.crypto.SecretKey;
    
    importjavax.crypto.spec.SecretKeySpec;
    
    importjava.math.BigInteger;
    
    importjava.security.InvalidKeyException;
    
    importjava.security.MessageDigest;
    
    importjava.security.NoSuchAlgorithmException;
    
    /**
    
    *@authorjasonLu
    
    *@date2017/11/2 12:44
    
    *@Description:
    
    */
    
    public classMyEncrypt{
    
    public static finalStringKEY_SHA="SHA";
    
    public static finalStringKEY_MD5="MD5";
    
    public static finalStringKEY_MAC="HmacMD5";
    
    // sun不推荐使用它们自己的base64,用apache的挺好
    
    /**
    
    * BASE64解密
    
    */
    
    public static byte[]decryptBASE64(byte[]dest) {
    
    if(dest==null) {
    
    return null;
    
    }
    
    returnBase64.decodeBase64(dest);
    
    }
    
    /**
    
    * BASE64加密
    
    */
    
    public static byte[]encryptBASE64(byte[]origin) {
    
    if(origin==null) {
    
    return null;
    
    }
    
    returnBase64.encodeBase64(origin);
    
    }
    
    /**
    
    * MD5加密
    
    *
    
    *@throwsNoSuchAlgorithmException
    
    */
    
    public static byte[]encryptMD5(byte[]data)
    
    throwsNoSuchAlgorithmException{
    
    if(data==null) {
    
    return null;
    
    }
    
    MessageDigestmd5=MessageDigest.getInstance(KEY_MD5);
    
    md5.update(data);
    
    returnmd5.digest();
    
    }
    
    /**
    
    * SHA加密
    
    *
    
    *@throwsNoSuchAlgorithmException
    
    */
    
    public static byte[]encryptSHA(byte[]data)
    
    throwsNoSuchAlgorithmException{
    
    if(data==null) {
    
    return null;
    
    }
    
    MessageDigestsha=MessageDigest.getInstance(KEY_SHA);
    
    sha.update(data);
    
    returnsha.digest();
    
    }
    
    /**
    
    *初始化HMAC密钥
    
    *
    
    *@throwsNoSuchAlgorithmException
    
    */
    
    public staticStringinitMacKey()throwsNoSuchAlgorithmException{
    
    KeyGeneratorkeyGenerator=KeyGenerator.getInstance(KEY_MAC);
    
    SecretKeysecretKey=keyGenerator.generateKey();
    
    return newString(encryptBASE64(secretKey.getEncoded()));
    
    }
    
    /**
    
    * HMAC加密
    
    *
    
    *@throwsNoSuchAlgorithmException
    
    *@throwsInvalidKeyException
    
    */
    
    public static byte[]encryptHMAC(byte[]data,Stringkey)
    
    throwsNoSuchAlgorithmException,InvalidKeyException{
    
    SecretKeysecretKey=newSecretKeySpec(decryptBASE64(key.getBytes()),
    
    KEY_MAC);
    
    Macmac=Mac.getInstance(secretKey.getAlgorithm());
    
    mac.init(secretKey);
    
    returnmac.doFinal(data);
    
    }
    
    public static voidmain(String[]args)throwsException{
    
    Stringdata="test123456";
    
    System.out.println(newBigInteger(encryptBASE64(data.getBytes())).toString(16));
    
    System.out.println(newBigInteger(encryptBASE64(data.getBytes())).toString(32));
    
    System.out.println(newString(decryptBASE64(encryptBASE64(data.getBytes()))));
    
    System.out.println(newBigInteger(encryptMD5(data.getBytes())).toString());
    
    System.out.println(newBigInteger(encryptSHA(data.getBytes())).toString());
    
    System.out.println(newBigInteger(encryptHMAC(data.getBytes(),initMacKey())).toString());
    
    }
    
    }
    
    

    相关文章

      网友评论

          本文标题:java各种加密

          本文链接:https://www.haomeiwen.com/subject/crpopxtx.html