Encryption RSA如何加密/解密?

Encryption RSA如何加密/解密?,encryption,rsa,Encryption,Rsa,我正在尝试学习RSA加密/解密,到目前为止这是有意义的,但我并不真正了解公钥/私钥是如何生成的,以及它们是如何加密/解密的 例如,我生成一个1024位的公钥/私钥: 公众: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCCexd/+ndyyyxovsieqc4c4whpri4nsw7hy8xfdowqipxbtgeqytwi2fvbp0j0yhnpibg893w5ex2ufyupf8yru9hr3yh3yvex1mzjopedptq3pg+skpwwg9oqy76

我正在尝试学习RSA加密/解密,到目前为止这是有意义的,但我并不真正了解公钥/私钥是如何生成的,以及它们是如何加密/解密的

例如,我生成一个1024位的公钥/私钥:

公众:

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCCexd/+ndyyyxovsieqc4c4whpri4nsw7hy8xfdowqipxbtgeqytwi2fvbp0j0yhnpibg893w5ex2ufyupf8yru9hr3yh3yvex1mzjopedptq3pg+skpwwg9oqy76ucfyym/rat0ifqotuqoqsov791ucbw1+2va8spmwidaqab

私人:

2.中国的一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一个城市,一X64qBRWn7EwaQbjfU9(2)目前,该研究的内容是一个非政府部门。目前,该研究的内容是一个非政府部门的非政府QQQQQQQBFFFFFFQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQFFFFFFFFQQQQQQQQFFQQQQQQQQQQFFFFFFFFFQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQFFFFFFQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQF++AMOQECPAKBUCCOOVJQFWBGZVIPXYS2FLFrUExqKgEMmUGybyHW4JlO0pfSJxPSmDEmzZVLRP5xuf+UhR/ZNUOLCD07F8QRAKAKAK1CG2PERMDK4COWGE2Z0PPPUTOFYD+LRTKWLBERCATQP2BDW7DBHHNR5KRN538KWPGZLOTPOIUQVUZ

并加密我的邮件:

SN/3/es3RCRSp3s8zY/UUI4ITWK5EELKVKU1Ox00EBRIXHYFF/+96+QTxfC7G4HIsKqH2PNwAPPkg0OBzTMjP2GzSdVIkhV4WDKYWXjiPRu36aH/D5CMEY09d3oHlE//nTgI4dJ5XuZw9/e3UwgfMB+GJSKILJ1SFZ6K3HUY=

RSA生成器是如何创建这些密钥的?它是如何加密我的短信的?它将如何用这些密钥解密加密的消息?那代码是什么样子的


(注意:我没有将这些特殊的密钥用于任何用途)

听起来您的困惑源于这样一个事实,即在线看到的大多数RSA示例都使用(非常大的)数字,而不是二进制数据或文本

回想一下,在引擎盖下,计算机实际上只能使用1和0。如果我们实现数字的RSA算法,我们实际上只是在一堆二进制文件上实现一个抽象层

文本也表示为二进制。所以我们可以很容易地在这两者之间转换

例如,当使用UTF-8编码时,“Test”一词在二进制中看起来像这样:

01010100 01100101 01110011 01110100

如果我们将这个二进制序列转换成一个数字(
UInt32
),我们将得到
1415934836
——这将适合(但不安全)用于类似维基百科上演示的RSA示例。

@tkausl您知道他们如何使用这些数字加密/解密消息吗?我想我只是不明白文本是如何与数字联系在一起的,因为它看起来不像十六进制或任何东西。这更有意义。那么加密是在二进制级别进行的,然后UTF-8将其作为不同的字符读取?这就是文本中有加号等的原因吗?它会计算,然后转换成base64?是的-有无数种不同的方式来表示二进制-当数据以10为基数表示时,人类可以对RSA中涉及的数学进行最好的推理。太棒了。非常感谢。