潍坊公司网站制作网络平台推广广告费用
web/
2025/9/26 19:26:23/
文章来源:
潍坊公司网站制作,网络平台推广广告费用,wordpress 分页无效,网站创建网站近期使用加密狗对软件进行加密#xff0c;但是软件用的c##xff0c;这就比较坑了#xff0c;因为c#自带的System.Security.Cryptography只支持c#格式的公钥加密私钥解密#xff0c;而现在需要私钥加密公钥解密。于是网上进行资料查找#xff0c;一堆资料说的都是使用Boun…近期使用加密狗对软件进行加密但是软件用的c#这就比较坑了因为c#自带的System.Security.Cryptography只支持c#格式的公钥加密私钥解密而现在需要私钥加密公钥解密。于是网上进行资料查找一堆资料说的都是使用BouncyCastle但是。。。。。。没有使用不同格式的密文啊喂你们有考虑过c#的孤独吗
经过对结构体的分析发现还是有些共通的地方比如要有Modulus和Exponent当然是对公钥来说然后各种调用生成公钥一波操作猛如虎回头一看二百五啊。。。。。。没人跟我说密文格式的不同啊喂。又是一顿搜索知道了c#的rsa密文是xml格式的不是简单的base64的需要转换咋办我想了个办法先用c#自带的加解密生成一个公私钥对然后就知道格式了啊对不对按照这个格式我将openssl里的公钥拼凑进去得到一个xml格式的公钥再通过c#自带的解xml公钥得到rsa信息再生成base64格式的公钥串啊哈竟然成功了神奇不
xml公钥格式大概是这样的
string strPubKey RSAKeyValueModulus str64Modulus /ModulusExponent str64Exponent /Exponent/RSAKeyValue;
转换xml格式公钥
public static string FromXmlPublicKey(string xmlPublicKey) { string result string.Empty; using (RSACryptoServiceProvider rsa new RSACryptoServiceProvider()) { rsa.FromXmlString(xmlPublicKey); RSAParameters p rsa.ExportParameters(false); RsaKeyParameters keyParams new RsaKeyParameters( false, new BigInteger(1, p.Modulus), new BigInteger(1, p.Exponent)); SubjectPublicKeyInfo publicKeyInfo SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(keyParams); result Convert.ToBase64String(publicKeyInfo.ToAsn1Object().GetEncoded()); } return result; }
用公钥解密
public static string DecryptPublicKey(string publicKey, string data) { RsaKeyParameters publicKeyParam (RsaKeyParameters)PublicKeyFactory.CreateKey(Convert.FromBase64String(publicKey)); byte[] cipherbytes Convert.FromBase64String(data); RsaEngine rsa new RsaEngine(); rsa.Init(false, publicKeyParam); cipherbytes rsa.ProcessBlock(cipherbytes, 0, cipherbytes.Length); return Convert.ToBase64String(cipherbytes, 0, cipherbytes.Length); }
以上问题解决如果大家有更好的办法希望留言没有人写相关的东西所以我粗略的写了点不对的请指出谢谢
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82346.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!