RSA加密算法对字符串加密(C++语言)看见你之前回答过这个问题,可不可以把源代码给我?

如题所述

第1个回答  2011-05-06
我来说几句没代码的吧,另外我是搞JAVA的!
RSA是不对称的加密算法,涉及到一对密钥:公钥和私钥,公钥是公开的,别人想给我发送信息就用公钥进行加密,私钥是自己独有,收到别人发送的密文,就用私钥进行解密。
生成公钥与私钥
选择一对不同的、足够大(是后面的n大于消息数)的素数p、q,计算n=p*q,f(n)=p*q。
找一个与f(n)互质的数e,计算d,让d*e模f(n)=1(打不出同余符号,就是让d*e与1模f(n)结果一样)。
公钥(e,n),私钥(d,n)
设明文为M,
加密:密文=M的e次方 mod n
解密:明文=密文的d次方 mod n
例子:取p=5、q=11。
n=55,f(n)=40,
去e=3
d=27,
公钥(3,55),私钥(27,55)
对字符串 “FLY”加密,先将按A-1,B-2……,z-26将其数字化,得到6,12,25
6的3次方mod55=51,
12的3次方mod55=23,
25的3次方mod55=5,
密文51,23,5
解密:
51的27次方mod55=6,
23的27次方mod55=12
5的27次方mod55=25,

基本思路就这样,不过实现过程会涉及到大数,推荐一个算mod的方法:
(A+B)的n次方对C取模,设A mod C=0,那么(A+B)的n次方mod C=B的n次方mod C,
以上面51的27次方mod55为例:
51的27次方=51的3次方的9次方=132651的9次方,132651=2411*55+46,
那么51的27次方mod55=(2411*55+46)的9次方mod55=46的9次方mod55,
以此类推,上式继续=97336的三次方mod55=41的三次方mod55=6;

RSA加密算法对字符串加密(C++语言)看见你之前回答过这个问题,可不可以...
RSA是不对称的加密算法,涉及到一对密钥:公钥和私钥,公钥是公开的,别人想给我发送信息就用公钥进行加密,私钥是自己独有,收到别人发送的密文,就用私钥进行解密。生成公钥与私钥 选择一对不同的、足够大(是后面的n大于消息数)的素数p、q,计算n=p*q,f(n)=p*q。找一个与f(n)互质的数e,...

如何用C++实现RSA算法??
my $r_cmess = RSA_ENCRYPT(\\$mess);print "加密串:",$$r_cmess,"\\n";my $r_dmess = RSA_DECRYPT($r_cmess);print "解密串:",$$r_dmess,"\\n";#EOF测试一下:C:\\Temp>perl rsa-test.plN=2773 D=847 E=63原始串:RSA 娃哈哈哈~~~加密串:5CB6CD6BC58A7709470AA74A0AA74A0AA74A6...

做一个RSA的算法,C语言实现的~!编程高手进啊~!救命啊~!
看你催就仓促写了个,自我感觉写的不是很好,但是能用了。数据只能是大写字母组成的字符串。加密的时候,输入Y,然后输入要加密的文本(大写字母)解密的时候,输入N,然后输入一个整数n表示密文的个数,然后n个整数表示加密时候得到的密文。\/*RSA algorithm *\/ include <stdio.h> include <string.h...

KeyFactory.getInstance("RSA");方式加密,返回的字符串,web访问和mian...
与 Provider 有关。先用main方法看看keyFactory 里的数据。再尝试用web方法调用下面的方法看看数据。KeyFactory keyFactory = KeyFactory.getInstance("RSA", Providers.getProviderList().getProvider("SunRsaSign"));同理Cipher.getInstance()这个方法也一样 ...

RSA公钥加密算法全过程实现
一、引言 根据信息安全技术课程,本实验旨在使用C++实现RSA公钥加密算法全过程,深入理解公钥加密技术。二、实验内容 (1) 高精度256进制算法 (2) 快速幂取模算法 (3) 超大质数生成与素性检验 (4) 计算p-1, q-1的最小公倍数 (5) 求解E与D (6) 加解密字符串 三、实验原理 公钥加密基于数论...

RSA加密用一个字符串每次加密后都不一样吗
是不是用了Pkcs#1算法之类的算法呢? 像pkcs#1这样子的算法,会给计算的内容添加随机数的,所以每次的结果就是不一样的 这是正常现象,请采纳。

常见软件的加壳技术有哪些呀
即使你没有程序的原代码,你也可以用ACProtect在程序上加上运行次数限制,运行天数限制,运行有效日期限制。通过公匙加密算法(RSA)创建并校验注册KEY,只有在RSAKEY正确的情况下,才对那些受保护的代码进行正常解码。同时使用了内嵌式加密,可以有效的防止加密软件从内存中被抓取,也就是无法被脱壳。内置反调试引擎,有效的...

在python中,如何加密python字符串?
以下是使用RSA 算法在 Python 中加密字符串的代码:输出:在上面的代码中,导入了rsa 模块,并在 rsa.newkeys() 函数的帮助下生成了公钥和私钥。然后,使用 public key 对字符串进行加密。然后可以仅使用私钥解密该字符串。在这个程序的情况下,公钥和私钥分别是 pubkey 和 privkey。非对称密钥加密提供...

C++模除左操作数为什么不能是double类型
不会出现特别大的数,问题得以解决。当然,实际RSA的使用,N会是一个很大的数,至少要2的1024次幂以上才能达到保密的效果。而这个时候需要特别大的数之间进行计算。这时的话需要进行高精度大数计算,用数组来保存各位数字。具体的你可以搜索一下高精度运算或者大数乘法的算法,在此就不再赘述了。

c++ openssl rsa 加密,JAVA 解密大问题。
object file generated \/WX tells the compiler to treat all warnings as errors. Since an error occurred, no object or executable file was generated.是由于设置了\/WX选项,将所有的警告都作为错误对待,所以。。。于是打开OpenSSL目录下的MS目录下的ntdll.mak文件,将CFLAG的\/WX选项去掉,存盘。

相似回答