类 BangbangCipher


  • public class BangbangCipher
    extends java.lang.Object
    数据加密/解密,加密/解密有DES、RSA。此外包含MD5、SHA数据转换,以及二进制数据与十六进制字符串互转
    版本:
    1.0
    作者:
    帮帮组
    • 字段概要

      字段 
      修饰符和类型 字段 说明
      static java.lang.String MD5
      MD5加密
      static java.lang.String SHA_1
      SHA-1加密
      static java.lang.String SHA1withRSA
      SHA1withRSA加密
    • 方法概要

      所有方法 静态方法 具体方法 
      修饰符和类型 方法 说明
      static java.lang.String byte2hex​(byte[] data)
      把二进制数据变为十六进制的字符串。
      static byte[] decryptDES​(byte[] encryptData, byte[] rawKeyData)
      对给定加密后的数据进行DES解密
      static byte[] decryptRSA​(byte[] encryptData, java.security.PrivateKey privateKey)
      对给定加密后的数据进行DES解密
      static byte[] digest​(byte[] bts, java.lang.String algorithm)
      使用消息摘要加密字节数组,消息摘要加密算法包括SHA-1、MD5
      static byte[] encryptDES​(byte[] rowData, byte[] rawKeyData)
      使用DES算法对给定数据进行加密
      static byte[] encryptRSA​(byte[] rowData, java.security.PublicKey publicKey)
      使用RSA算法对给定数据进行加密
      static java.security.KeyPair getRSAKeyPair()
      获得RSA密钥对
      static byte[] hex2byte​(java.lang.String value)
      把十六进制的字符串变为二进制数据。
      static java.security.PrivateKey recoverRSAPrivateKey​(java.math.BigInteger modulus, java.math.BigInteger privateExponent)
      使用钥匙的模数和指数还原私钥
      static java.security.PublicKey recoverRSAPublicKey​(java.math.BigInteger modulus, java.math.BigInteger publicExponent)
      使用钥匙的模数和指数还原公钥
      static byte[] sign​(java.security.PrivateKey privateKey, byte[] data, java.lang.String algorithm)
      使用私钥对数据进行签名
      static boolean verifySign​(java.security.PublicKey publicKey, byte[] srcData, byte[] signData, java.lang.String algorithm)
      使用公钥验证签名
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 字段详细资料

      • MD5

        public static final java.lang.String MD5
        MD5加密
        另请参阅:
        常量字段值
      • SHA_1

        public static final java.lang.String SHA_1
        SHA-1加密
        另请参阅:
        常量字段值
      • SHA1withRSA

        public static final java.lang.String SHA1withRSA
        SHA1withRSA加密
        另请参阅:
        常量字段值
    • 构造器详细资料

      • BangbangCipher

        public BangbangCipher()
    • 方法详细资料

      • encryptDES

        public static byte[] encryptDES​(byte[] rowData,
                                        byte[] rawKeyData)
                                 throws java.lang.Exception
        使用DES算法对给定数据进行加密
        参数:
        rowData - 原数据
        rawKeyData - 密钥,必须为8位字节
        返回:
        密文
        抛出:
        java.lang.Exception - 加密异常
      • decryptDES

        public static byte[] decryptDES​(byte[] encryptData,
                                        byte[] rawKeyData)
                                 throws java.lang.Exception
        对给定加密后的数据进行DES解密
        参数:
        encryptData - 加密后的数据
        rawKeyData - 密钥,必须为8位字节
        返回:
        解密后的明文
        抛出:
        java.lang.Exception - 解密异常
      • getRSAKeyPair

        public static java.security.KeyPair getRSAKeyPair()
                                                   throws java.security.NoSuchAlgorithmException
        获得RSA密钥对
        返回:
        RSA密钥对,内含公钥和私钥。
        抛出:
        java.security.NoSuchAlgorithmException - 算法不存在
      • recoverRSAPublicKey

        public static java.security.PublicKey recoverRSAPublicKey​(java.math.BigInteger modulus,
                                                                  java.math.BigInteger publicExponent)
                                                           throws java.security.NoSuchAlgorithmException,
                                                                  java.security.spec.InvalidKeySpecException
        使用钥匙的模数和指数还原公钥
        参数:
        modulus - 公钥模数
        publicExponent - 公钥指数
        返回:
        还原后的公钥
        抛出:
        java.security.NoSuchAlgorithmException - 算法不存在
        java.security.spec.InvalidKeySpecException - 无效的KEY
      • recoverRSAPrivateKey

        public static java.security.PrivateKey recoverRSAPrivateKey​(java.math.BigInteger modulus,
                                                                    java.math.BigInteger privateExponent)
                                                             throws java.security.NoSuchAlgorithmException,
                                                                    java.security.spec.InvalidKeySpecException
        使用钥匙的模数和指数还原私钥
        参数:
        modulus - 私钥模数
        privateExponent - 私钥指数
        返回:
        还原后的私钥
        抛出:
        java.security.NoSuchAlgorithmException - 算法不存在
        java.security.spec.InvalidKeySpecException - 无效的KEY
      • encryptRSA

        public static byte[] encryptRSA​(byte[] rowData,
                                        java.security.PublicKey publicKey)
                                 throws java.security.InvalidKeyException,
                                        java.security.NoSuchAlgorithmException,
                                        java.security.spec.InvalidKeySpecException,
                                        javax.crypto.NoSuchPaddingException,
                                        javax.crypto.IllegalBlockSizeException,
                                        javax.crypto.BadPaddingException
        使用RSA算法对给定数据进行加密
        参数:
        rowData - 原数据
        publicKey - 用于加密的公钥
        返回:
        密文
        抛出:
        java.security.InvalidKeyException - 无效的KEY
        java.security.NoSuchAlgorithmException - 算法不存在
        java.security.spec.InvalidKeySpecException - 无效的KEY Spec
        javax.crypto.NoSuchPaddingException - Padding异常
        javax.crypto.IllegalBlockSizeException - 字节块大小异常
        javax.crypto.BadPaddingException - Padding异常
      • decryptRSA

        public static byte[] decryptRSA​(byte[] encryptData,
                                        java.security.PrivateKey privateKey)
                                 throws java.security.InvalidKeyException,
                                        java.security.NoSuchAlgorithmException,
                                        javax.crypto.NoSuchPaddingException,
                                        java.security.spec.InvalidKeySpecException,
                                        javax.crypto.IllegalBlockSizeException,
                                        javax.crypto.BadPaddingException
        对给定加密后的数据进行DES解密
        参数:
        encryptData - 加密后的数据
        privateKey - 解密的私钥
        返回:
        解密后的明文
        抛出:
        java.security.InvalidKeyException - 无效的KEY
        java.security.NoSuchAlgorithmException - 算法不存在
        java.security.spec.InvalidKeySpecException - 无效的KEY Spec
        javax.crypto.NoSuchPaddingException - Padding异常
        javax.crypto.IllegalBlockSizeException - 字节块大小异常
        javax.crypto.BadPaddingException - Padding异常
      • sign

        public static byte[] sign​(java.security.PrivateKey privateKey,
                                  byte[] data,
                                  java.lang.String algorithm)
                           throws java.security.NoSuchAlgorithmException,
                                  java.security.InvalidKeyException,
                                  java.security.SignatureException
        使用私钥对数据进行签名
        参数:
        privateKey - 私钥
        data - 待签名数据
        algorithm - 算法,支持SHA1withRSA
        返回:
        签名
        抛出:
        java.security.NoSuchAlgorithmException - 算法不存在
        java.security.InvalidKeyException - 无效的KEY
        java.security.SignatureException - 签名异常
      • verifySign

        public static boolean verifySign​(java.security.PublicKey publicKey,
                                         byte[] srcData,
                                         byte[] signData,
                                         java.lang.String algorithm)
                                  throws java.security.NoSuchAlgorithmException,
                                         java.security.InvalidKeyException,
                                         java.security.SignatureException
        使用公钥验证签名
        参数:
        publicKey - 公钥
        srcData - 源数据
        signData - 签名数据
        algorithm - 算法,支持SHA1withRSA
        返回:
        true:成功 false:失败
        抛出:
        java.security.NoSuchAlgorithmException - 算法不存在
        java.security.InvalidKeyException - 无效的KEY
        java.security.SignatureException - 签名异常
      • digest

        public static byte[] digest​(byte[] bts,
                                    java.lang.String algorithm)
        使用消息摘要加密字节数组,消息摘要加密算法包括SHA-1、MD5
        参数:
        bts - 要加密的字节数组
        algorithm - 消息摘要加密算法
        返回:
        经消息摘要加密后的密文
      • byte2hex

        public static java.lang.String byte2hex​(byte[] data)
        把二进制数据变为十六进制的字符串。
        参数:
        data - 二进制数组
        返回:
        十六进制的字符串
      • hex2byte

        public static byte[] hex2byte​(java.lang.String value)
        把十六进制的字符串变为二进制数据。
        参数:
        value - 十六进制的字符串
        返回:
        二进制数组