S/Mime 暗号化を使用して文字列を暗号化する任務を負っています。何年も前に、私が働いている会社が (IPWorks から) このためのコンポーネントを購入しましたが、私たちのサーバーでそのコンポーネントを適切に動作させるために、数え切れないほどの悲しみがありました。機能の問題ではなく、より多くのライセンス。
つまり、自分でやらなければならないということです。MSDN とフォーラムを調べて、次のコードをまとめました。残念ながら、それが作成する出力は私が期待するものではありません。私が期待していない韓国語と特殊文字がたくさん。
public string EncryptString(string toEncrypt, string key)
{
// Convert the body to bytes
byte[] bodyBytes = Encoding.ASCII.GetBytes(toEncrypt);
// Encrypt the body
var envelopedCms = new EnvelopedCms(new ContentInfo(bodyBytes));
var certificate = new X509Certificate2(Encoding.ASCII.GetBytes(key));
var recipient = new CmsRecipient(certificate);
envelopedCms.Encrypt(recipient);
byte[] encryptedBytes = envelopedCms.Encode();
var msg = new MailMessage();
var ms = new MemoryStream(encryptedBytes);
var av = new AlternateView(ms, "application/pkcs7-mime; smime-type=enveloped-data;name=smime.p7m; content-transfer-encoding=Base64; content-disposition=attachment; fileName=smime.p7m;");
msg.AlternateViews.Add(av);
return new StreamReader(msg.AlternateViews[0].ContentStream).ReadToEnd();
}
誰かがここで明らかな失敗を見ることができますか?
私はこのコードに「結婚」していないので、この火を消す方法について別の提案があれば.
親切と感謝、
ダン