Tag: rsa

从公钥正确创建RSACryptoServiceProvider

我目前正在尝试仅从解码的PEM文件创建RSACryptoServiceProvider对象。 经过几天的搜索,我确实设法解决了一个有效的解决方案,但它不是一个可以生产就绪的解决方案。 简而言之,为了从组成PEM文件中的公钥的字节创建RSACryptoServiceProvider对象,我必须创建指定keysize的对象(当前使用SHA256的2048),然后使用Exponent导入RSAParameters对象和Modulus集。 我是这样做的; byte[] publicKeyBytes = Convert.FromBase64String(deserializedPublicKey.Replace(“—–BEGIN PUBLIC KEY—–“, “”) .Replace(“—–END PUBLIC KEY—–“, “”)); // extract the modulus and exponent based on the key data byte[] exponentData = new byte[3]; byte[] modulusData = new byte[256]; Array.Copy(publicKeyBytes, publicKeyBytes.Length – exponentData.Length, exponentData, 0, exponentData.Length); Array.Copy(publicKeyBytes, 9, modulusData, 0, modulusData.Length); // import the public key data (base […]

加密/解密大文件(.NET)

我必须加密,存储然后解密大文件。 这样做的最佳方式是什么? 我听说RSA加密很昂贵,建议使用RSA加密AES密钥,然后使用AES密钥加密大文件。 任何带有示例的建议都会很棒。

C#将RSACryptoServiceProvider中的私有/公共RSA密钥导出为PEM字符串

我有一个System.Security.Cryptography.RSACryptoServiceProvider的实例,我需要将它的密钥导出到PEM字符串 – 如下所示: —–BEGIN RSA PRIVATE KEY—– MIICXAIBAAKBgQDUNPB6Lvx+tlP5QhSikADl71AjZf9KN31qrDpXNDNHEI0OTVJ1 OaP2l56bSKNo8trFne1NK/B4JzCuNP8x6oGCAG+7bFgkbTMzV2PCoDCRjNH957Q4 Gxgx1VoS6PjD3OigZnx5b9Hebbp3OrTuqNZaK/oLPGr5swxHILFVeHKupQIDAQAB AoGAQk3MOZEGyZy0fjQ8eFKgRTfSBU1wR8Mwx6zKicbAotq0CBz2v7Pj3D+higlX LYp7+rUOmUc6WoB8QGJEvlb0YZVxUg1yDLMWYPE7ddsHsOkBIs7zIyS6cqhn0yZD VTRFjVST/EduvpUOL5hbyLSwuq+rbv0iPwGW5hkCHNEhx2ECQQDfLS5549wjiFXF gcio8g715eMT+20we3YmgMJDcviMGwN/mArvnBgBQsFtCTsMoOxm68SfIrBYlKYy BsFxn+19AkEA82q83pmcbGJRJ3ZMC/Pv+/+/XNFOvMkfT9qbuA6Lv69Z1yk7I1ie FTH6tOmPUu4WsIOFtDuYbfV2pvpqx7GuSQJAK3SnvRIyNjUAxoF76fGgGh9WNPjb DPqtSdf+e5Wycc18w+Z+EqPpRK2T7kBC4DWhcnTsBzSA8+6V4d3Q4ugKHQJATRhw a3xxm65kD8CbA2omh0UQQgCVFJwKy8rsaRZKUtLh/JC1h1No9kOXKTeUSmrYSt3N OjFp7OHCy84ihc8T6QJBANe+9xkN9hJYNK1pL1kSwXNuebzcgk3AMwHh7ThvjLgO jruxbM2NyMM5tl9NZCgh1vKc2v5VaonqM1NBQPDeTTw= —–END RSA PRIVATE KEY—– 但根据MSDN文档,没有这样的选项,只有某种XML导出。 我不能使用任何第三方库,如BouncyCastle。 有没有办法生成这个字符串?

如何从C#中的文件加载RSA公钥

我需要从文件加载以下RSA公钥以与RSACryptoServiceProvider类一起使用。 我怎样才能做到这一点? —–BEGIN PUBLIC KEY—– XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/syEKqEkMtQL0+d XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+izR KbGMRtur2TYklnyVkjeeHfAggo8vWQmWesnOG55vQYHbOOFoJbk0EkwEr5R/PbKm byXPPN8zwnS5/XXXXXXXXXXXX —–END PUBLIC KEY—– 此代码适用于我的pub键: http : //www.jensign.com/opensslkey/ 这是我正在使用的代码 static string RSA(string input) { RSACryptoServiceProvider rsa = DecodeX509PublicKey(Convert.FromBase64String(GetKey())); return (Convert.ToBase64String(rsa.Encrypt(Encoding.ASCII.GetBytes(input), false))); } static string GetKey() { return File.ReadAllText(“master.pub”).Replace(“—–BEGIN PUBLIC KEY—–“, “”).Replace(“—–END PUBLIC KEY—–“, “”); //.Replace(“\n”, “”); } private static bool CompareBytearrays(byte[] a, byte[] b) { if (a.Length […]

C#RSA公钥输出不正确

我目前正在尝试使用C#生成并发送公共RSA密钥。 它应该是PEM格式的2048位长密钥。 我使用OpenSSL命令成功完成了以下操作(缩短了一些输出): $ openssl genrsa 2048 Generating RSA private key, 2048 bit long modulus ……………………………………………………+++ ……………………………………………………+++ e is 65537 (0x10001) $ openssl rsa -pubout —–BEGIN RSA PRIVATE KEY—– MIIEowIBAAKCAQEAy1MoBtENHBhYLgwP5Hw/xRGaBPHonApChBPBYD6fiq/QoLXA RmyMoOjXHsKrrwysYIujXADM2LZ0MlFvPbBulvciWnZwp9CUQPwsZ8xnmBWlHyru xTxNSvV+E/6+2gMOn3I4bmOSIaLx2Y7nCuaenREvD7Mn0vgFnP7yaN8/9va4q8Lo … … y5jiKQKBgGAe9DlkYvR6Edr/gzd6HaF4btQZf6idGdmsYRYc2EMHdRM2NVqlvyLc MR6rYEuViqLN5XWK6ITOlTPrgAuU6Rl4ZpRlS1ZrfjiUS6dzD/jtJJvsYByC7ZoU NxIzB0r1hj0TIoedu6NqfRyJ6Fx09U5W81xx77T1EBSg4OCH7eyl —–END RSA PRIVATE KEY—– writing RSA key —–BEGIN PUBLIC KEY—– MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy1MoBtENHBhYLgwP5Hw/ xRGaBPHonApChBPBYD6fiq/QoLXARmyMoOjXHsKrrwysYIujXADM2LZ0MlFvPbBu lvciWnZwp9CUQPwsZ8xnmBWlHyruxTxNSvV+E/6+2gMOn3I4bmOSIaLx2Y7nCuae nREvD7Mn0vgFnP7yaN8/9va4q8LoMKlceE5fSYl2QIfC5ZxUtkblbycEWZHLVOkv +4Iz0ibD8KGo0PaiZl0jmn9yYXFy747xmwVun+Z4czO8Nu+OOVxsQF4hu1pKvTUx 9yHH/vk5Wr0I09VFyt3BT/RkecJbAAWB9/e572T+hhmmJ08wCs29oFa2Cdik9yyE 2QIDAQAB —–END […]