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); }
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); }