asp.net webapi and public key data protect
有D唔係幾明白,我見weapi code 大慨係咁.
問題係點解好似唔洗decryption? 因為行ssl , 所唔係洗encrypt data?
好似只係做左verify 由指定機request 咁
[HttpPost, Route("~/api/product", Name = "RequestProduct")]
public JsonResult RequestProduct(byte[] signature, string data)
{
if (Encryptor.VerifyCert(data, signature, ApiPublicKeyPath))
{
ProductData productData = JsonConvert.DeserializeObject<ProductData>(data);
.............
}
}
//VerifyData Encryptor class
public static bool VerifyCert(string text, byte[] signature, string certPath)
{
X509Certificate2 cert = new X509Certificate2(certPath);
RSACryptoServiceProvider csp = (RSACryptoServiceProvider)cert.PublicKey.Key;
using (RSA rsaCng = new RSACng())
{
rsaCng.ImportParameters(csp.ExportParameters(false));
UnicodeEncoding encoding = new UnicodeEncoding();
byte[] data = encoding.GetBytes(text);
return rsaCng.VerifyData(
data,
signature,
HashAlgorithmName.SHA256,
RSASignaturePadding.Pkcs1);
}
} |
|
|