private trafficMessage DecryptMessageAfterResponse(trafficMessage msgEncrypt) { trafficMessage msgSource = new trafficMessage(); msgSource.transCode = msgEncrypt.transCode; msgSource.merId = msgEncrypt.merId; msgSource.extend = msgEncrypt.extend; msgSource.encryptKey = CryptUtils.getStringFromBytes(CryptUtils.RSADecrypt(CryptUtils.getPrivateKeyXmlFromPFX(pfxFilePath, pfxPassword).PrivateKey.ToXmlString(true), CryptUtils.Base64Decoder(msgEncrypt.encryptKey)), encodeCode); Console.WriteLine("Decrypted remote AESkey [" + msgSource.encryptKey + "]"); //Console.WriteLine("encryptKey[" + msgSource.encryptKey + "]); byte[] sourceByte = CryptUtils.AESDecrypt(CryptUtils.Base64Decoder(msgEncrypt.encryptData), msgSource.encryptKey); msgSource.encryptData = CryptUtils.getStringFromBytes(sourceByte, encodeCode); // Console.WriteLine("encryptData[" + msgSource.encryptData + "][" + msgEncrypt.encryptData + "]"); msgSource.sign = CryptUtils.VerifySignWithPublicKey( sourceByte, CryptUtils.getPublicKeyXmlFromCer(cerFilePath), CryptUtils.Base64Decoder(msgEncrypt.sign) ).ToString(); // Console.WriteLine("sign[" + msgSource.sign + "][" + msgEncrypt.sign + "]"); //需要添加引用 System.Web return(msgSource); }
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 CheckSignMessageAfterResponse(trafficMessage msgEncrypt) { trafficMessage msgSource = new trafficMessage(); //获取报文字符集 this.encodeCode = Encoding.GetEncoding(msgEncrypt.charset); log.Debug("Message Charset is [" + msgEncrypt.charset + "]"); msgSource.charset = msgEncrypt.charset; msgSource.signType = msgEncrypt.signType; msgSource.extend = msgEncrypt.extend; msgSource.data = msgEncrypt.data; msgSource.sign = CryptUtils.VerifySignWithPublicKey( (CryptUtils.getBytesFromString(msgEncrypt.data, encodeCode)), CryptUtils.getPublicKeyXmlFromCer(cerFilePath), CryptUtils.Base64Decoder(msgEncrypt.sign) ).ToString(); log.Debug("sign[" + msgSource.sign + "][" + msgEncrypt.sign + "]"); return(msgSource); }
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); }