您好,我的目标是加密 zipfile 的密码。至于现在,我只需要生成一个SHA Hash
作为我的密码的密码,并使用RSA-Cryptoprovider
我的私钥来加密密码。
现在我需要使用.p7b
和.p12
证书来完成这项任务。但是我不明白我需要这些文件做什么,经过一些研究我发现这.p12
可能是我用来加密密码的文件,但我需要.p7b
什么?
这就是我到目前为止所做的,它似乎有效,因为我可以读取字符串但我仍然需要我的.p7b
文件做什么?
var password = @"test";
var p12FilePath = @"key\Test.p12";
var text = @"myFutureZipPassword";
X509Certificate2 cert = new X509Certificate2(p12FilePath, password, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
byte[] certData = cert.Export(X509ContentType.Pfx, password);
RSACryptoServiceProvider rsaKey = (RSACryptoServiceProvider)cert.PrivateKey;
SHA1Managed sha1 = new SHA1Managed();
UnicodeEncoding encoding = new UnicodeEncoding();
byte[] data = encoding.GetBytes(text);
byte[] hash = sha1.ComputeHash(data);
var sign = rsaKey.SignHash(hash, CryptoConfig.MapNameToOID("SHA1"));
var str = System.Text.Encoding.Default.GetString(sign);