这个 C# RSACryptoServiceProvider 方法的红宝石等价物是啥

Posted

技术标签:

【中文标题】这个 C# RSACryptoServiceProvider 方法的红宝石等价物是啥【英文标题】:What is the ruby equivalant of this C# RSACryptoServiceProvider methods这个 C# RSACryptoServiceProvider 方法的红宝石等价物是什么 【发布时间】:2016-04-21 07:49:19 【问题描述】:
int dwKeySize = 1024;
rsaCryptoServiceProvider = new RSACryptoServiceProvider(dwKeySize);
rsaCryptoServiceProvider.FromXmlString(strxmlString);
byte[] bytes = Encoding.UTF8.GetBytes(strInPut);
byte[] encryptedBytes = rsaCryptoServiceProvider.Encrypt(bytes, false);
return Convert.ToBase64String(encryptedBytes);

我有c# 生成public RSA key 并想在ruby 中加密与上述算法等效的数据。

【问题讨论】:

我对 FromXmlString 特别感兴趣,任何帮助都会很棒 【参考方案1】:

看看 openssl 模块 OpenSSL (Ruby(2.0.0) 。有 以及如何使用它的示例。

示例

    加密“你好,世界!”:

    require 'openssl'
    require 'base64'
    key = OpenSSL::PKey::RSA.new(1024)
    plain_text = "Hello, World!"
    enc_base64_text = Base64.encode64(key.public_encrypt(plain_text))
    # => "\x91W\xF9\v\xDEU|\x9E\xC6\xA6\x1C\xCF\xF5Jc\x88'\x81\xE6\xF8mpe \xF1\x86 tt\rs\xD0OC\xC0\xA8J\xF5\x90\x89\x8A\xFE\x9Fn1\xA5\xEB5\x95\xC7DH\xF4.\xED\x17\x8C]G\xBF\xEBB\x98'\xFA\xCAGp\xFFJ\xEA*\x1A\a\xC0\x96\x88i\x9F\xCA\x80+u\t\xB6Hk\xAC\xCD\xBA\xD2\xBE\xC0o\xF0z\xA9\xCF\xA6\xFA\xC75\xDF\x9D\xE9~\xD4\xEB\xC3\xDEJ\xBEU\xBA\xD6\xEE?\x17?\xAE\xDC\xC3\xD7\xACR\xD5"
    

    解密:

    key.private_decrypt(Base64.decode64(enc_base64_text))
    # => "Hello, World!"
    

【讨论】:

以上是关于这个 C# RSACryptoServiceProvider 方法的红宝石等价物是啥的主要内容,如果未能解决你的问题,请参考以下文章

这个C#程序真了不起

我需要这个 C# 代码的 Swift 代码

c# 这个设计是“正确的”吗?

为啥这个多态 C# 代码会打印它的功能?

c#小灶——初识c#

有人可以帮我在c#中解决这个问题吗