Exemple #1
0
        /// <summary>
        /// 采用RAS和DES一起进行加密操作,公钥加密Key/IV,Key和IV来加密源数据,可以指定具体采用的Key / Iv
        /// </summary>
        /// <param name="xmlPublicKey"></param>
        /// <param name="srcDataToEncrypted"></param>
        /// <returns></returns>
        public static RSADESEncryptResult EncryptByRSADES(string xmlPublicKey, string srcDataToEncrypted, DesKeyIVEntity keyIv)
        {
            RSADESEncryptResult result = new RSADESEncryptResult();

            //公钥加密Key
            result.EncryptedDesKeyIV = EncryptUtility.EncryptByRSA(string.Format("{0}.{1}", keyIv.KeyString, keyIv.IVString), Encoding.Unicode, xmlPublicKey);

            //Key和IV来加密源数据
            result.EncryptedSourceData = EncryptUtility.EncryptByDES(srcDataToEncrypted, Encoding.Unicode, keyIv.KeyBytes, keyIv.IVBytes);

            return(result);
        }
Exemple #2
0
        /// <summary>
        /// 采用RAS和DES一起进行解密操作,私钥解析出来Key/IV,然后用Key/Iv解密业务数据
        /// </summary>
        /// <param name="xmlPrivateKey"></param>
        /// <param name="encryptResult"></param>
        /// <returns></returns>
        public static RSADESDecryptResult DecryptByRSADES(string xmlPrivateKey, RSADESEncryptResult encryptResult)
        {
            string[] encryptedKeyIv = EncryptUtility.DecryptByRSA(encryptResult.EncryptedDesKeyIV, Encoding.Unicode, xmlPrivateKey).Split('.');
            var      result         = new RSADESDecryptResult();

            result.DecryptedDesKey = encryptedKeyIv[0];
            result.DecryptedDesIv  = encryptedKeyIv[1];
            var keyIv = new DesKeyIVEntity()
            {
                KeyString = result.DecryptedDesKey, IVString = result.DecryptedDesIv
            };

            result.DecryptedSourceData = EncryptUtility.DecryptByDES(encryptResult.EncryptedSourceData, Encoding.Unicode, keyIv.KeyBytes, keyIv.IVBytes);
            return(result);
        }
Exemple #3
0
 /// <summary>
 /// 采用MD5计算二进制序列的Hash结果,并转换成Base64格式的字符串返回
 /// </summary>
 /// <param name="inputs"></param>
 /// <returns></returns>
 public static string ComputeHashStringByMD5(byte[] inputs)
 {
     return(EncodingUtility.ToBase64FromBytes(EncryptUtility.ComputeHashByMD5(inputs)));
 }
Exemple #4
0
        /// <summary>
        /// 采用RAS和DES一起进行加密操作,公钥加密Key/IV,Key和IV来加密源数据
        /// </summary>
        /// <param name="xmlPublicKey"></param>
        /// <param name="srcDataToEncrypted"></param>
        /// <returns></returns>
        public static RSADESEncryptResult EncryptByRSADES(string xmlPublicKey, string srcDataToEncrypted)
        {
            DesKeyIVEntity keyIv = EncryptUtility.GenerateDesKeyIv();

            return(EncryptByRSADES(xmlPublicKey, srcDataToEncrypted, keyIv));
        }