private trafficMessage EncryptMessageBeforePost(trafficMessage msgSource) { trafficMessage msgEncrypt = new trafficMessage(); //随机生成16位密钥 msgSource.encryptKey = CryptUtils.GuidTo16String(); Console.WriteLine("Generated local AESkey [" + msgSource.encryptKey + "]"); //encryptKey加密,杉德公钥RSA加密 msgEncrypt.encryptKey = CryptUtils.Base64Encoder(CryptUtils.RSAEncrypt(CryptUtils.getPublicKeyXmlFromCer(cerFilePath).PublicKey.Key.ToXmlString(false), CryptUtils.getBytesFromString(msgSource.encryptKey, encodeCode))); //Console.WriteLine("encryptKey[" + msgSource.encryptKey + "][" + msgEncrypt.encryptKey + "]"); msgEncrypt.transCode = msgSource.transCode; msgEncrypt.merId = msgSource.merId; msgEncrypt.extend = msgSource.extend; //encryptData加密,AES加密 msgEncrypt.encryptData = CryptUtils.Base64Encoder(CryptUtils.AESEncrypt(CryptUtils.getBytesFromString(msgSource.encryptData, encodeCode), msgSource.encryptKey)); //Console.WriteLine("encryptData[" + msgSource.encryptData + "][" + msgEncrypt.encryptData + "]"); msgEncrypt.sign = CryptUtils.Base64Encoder(CryptUtils.CreateSignWithPrivateKey(CryptUtils.getBytesFromString(msgSource.encryptData, encodeCode), CryptUtils.getPrivateKeyXmlFromPFX(pfxFilePath, pfxPassword))); //Console.WriteLine("sign[" + msgEncrypt.sign + "]"); return(msgEncrypt); }
public trafficMessage SignMessageBeforePost(trafficMessage msgSource) { trafficMessage msgEncrypt = new trafficMessage(); //获取报文字符集 this.encodeCode = Encoding.GetEncoding(msgSource.charset); log.Debug("Message Charset is [" + msgSource.charset + "]"); msgEncrypt.charset = msgSource.charset; msgEncrypt.signType = msgSource.signType; msgEncrypt.extend = msgSource.extend; msgEncrypt.data = msgSource.data; //报文签名 msgEncrypt.sign = CryptUtils.Base64Encoder(CryptUtils.CreateSignWithPrivateKey(CryptUtils.getBytesFromString(msgSource.data, encodeCode), CryptUtils.getPrivateKeyXmlFromPFX(pfxFilePath, pfxPassword))); log.Debug("sign[" + msgEncrypt.sign + "]"); return(msgEncrypt); }