我正在尝试了解RSA加密/解密,到目前为止这是有意义的,但是我真的不了解如何生成公钥/私钥以及它们如何加密/解密。
例如,我生成一个1024位的公用/专用密钥:
公共:
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCCexd / + + nDyyxOVsieqc4c6aC4wHPRi4Nsw0l7hy8XFDOWQiPxBTgeqYtWI2fVBp0J0yHNpibG893W5Ex2UfYUPf8Yru5J9Hr3yHveX1mzJOPedPTq3pg SKpWGb9oqy76ucFyYM / Rat0IfqotUQSOV79sz1uCbDw1 + 2VA8klspmwIDAQAB
私人:
MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAIJ7F3 / 6cPLLE5WyJ6pzhzpoLjAc9GLg2zDSXuHLxcUM5ZCI / EFOB6pi1YjZ9UGnQnTIc2mJsbz3dbkTHZR9hQ9 / xiu7kn0evfIe95fWbMk49509OremD5IqlYZv2irLvq5wXJgz9Fq3Qh + qi1RBI5Xv2zPW4JsPDX7ZUDySWymbAgMBAAECgYAnbUBlmGxmwPxTAHlB5RTYjkBeo3EpK56v + vFWszc4WrRHX00yAn0IfELfzlRwmTTYivVsz4GYgwHcga0vgFojLRTmynUNPHD / X64qBRWn7EwaQbjfU9w + xYUpNlJLSlXE9CJnoH / 2DN + 8zYs7VfhvrW5H3FYvs1DZzD0xe7Bf0QJBAMQBVfY5NtqFW / U8fesDFlwQ6St3Yt9 + DbrC418AxxTvvkedQ5QoMo7T1g6VEfisK3b9B23V9q1Rl7XkexDAzDMCQQCqa13aMIteoOmc9UqCnXxIx4qWfH0cxf5 / 7l6b / hHCdIH3wtZCwHibWjCQukcTlWy / wwxUYhG29O / TCfOGDUT5AkAs8fF4SJ5fdX0kuv5UyZxy + B2 / rdyqSwly7gWdX1xHXMJRQaqhaqZNQh4vsdcxIqnE2zi84vdxvuf ++ amOqecpAkBUCcooVJQFwBgzvIpXys2FHlFrUExqKgEMmUGybyHW4JlO0pfSJxPSmDEmzZVLRP5xuf + UHR / zNuolCd07F8QRAkAk1cg2PERmdk4CwOmxGE2z0PPpUtOFYD + lRtKwlBErCATqp2BBDW7DbhhNR5kRN538KwOpgVxZloTPoiujqVUz
并加密我的消息:
SN / 3 / es3RCRSp3s8zY / Uyg4Itwk5eELkVKU1OX00EBRixXHYFF / + 96 + QTxfC7G4HIsKqH2PNwAPPkg0OBzTMjP2GzSdVIkhV4WDKYWXjihuJguJguJgUJw1JW1JW3G1E3KYK1E4K3E1E6E3E9E1E9
RSA生成器如何创建这些密钥?它如何加密我的短信?以及如何使用这些密钥解密该加密的消息?该代码是什么样的?
(注意:我没有将这些特定键用于任何事情)
答案 0 :(得分:0)
听起来您的困惑源于您在网上看到的大多数RSA示例都使用(很大)数字而不是二进制数据或文本。
回想一下,实际上,计算机实际上只能使用1和0。如果我们为数字实现RSA算法,则实际上只是在一堆二进制文件上实现了抽象层。
文本也表示为二进制。这样我们就可以在这些之间轻松转换。
例如,使用UTF-8进行编码的“测试”一词的二进制形式如下:
01010100 01100101 01110011 01110100
如果我们将此二进制序列转换为数字(UInt32
),则会得到1415934836
-适用于(但不安全)RSA示例(如维基百科上演示的示例)使用。