Ejemplo n.º 1
0
        public static bool Sign(Dictionary <string, string> data, Encoding encoder, string signCertpath, string signCertpwd)
        {
            data["certId"] = CertUtil.GetSignCertId(signCertpath, signCertpwd);
            string str = SignUtil.CoverDictionaryToString(data);

            byte[] numArray = SecurityUtil.Sha1X16(str, encoder);
            string lower    = BitConverter.ToString(numArray).Replace("-", "").ToLower();

            byte[] numArray1 = SecurityUtil.SignBySoft(CertUtil.GetSignProviderFromPfx(signCertpath, signCertpwd), encoder.GetBytes(lower));
            data["signature"] = Convert.ToBase64String(numArray1);
            return(true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 签名
        /// </summary>
        /// <param name="dataStr"></param>
        /// <param name="encoder"></param>
        /// <returns></returns>
        public static bool Sign(Dictionary <string, string> data, Encoding encoder, string signCertpath, string signCertpwd)
        {
            //设置签名证书序列号 ?
            data["certId"] = CertUtil.GetSignCertId(signCertpath, signCertpwd);
            //将Dictionary信息转换成key1=value1&key2=value2的形式
            string stringData = CoverDictionaryToString(data);

            string stringSign = null;

            byte[] signDigest = SecurityUtil.Sha1X16(stringData, encoder);

            string stringSignDigest = BitConverter.ToString(signDigest).Replace("-", "").ToLower();

            byte[] byteSign = SecurityUtil.SignBySoft(CertUtil.GetSignProviderFromPfx(signCertpath, signCertpwd), encoder.GetBytes(stringSignDigest));

            stringSign = Convert.ToBase64String(byteSign);

            //设置签名域值
            data["signature"] = stringSign;

            return(true);
        }