首页
社区
课程
招聘
问题解决,多谢 wofan[ocn] 兄弟的指点
发表于: 2007-4-27 23:25 8421

问题解决,多谢 wofan[ocn] 兄弟的指点

2007-4-27 23:25
8421
今天我下了一个FGInt库,想编辑一个用到RSA的注册机,可是编辑完成后却发现问题了,我用FGInt库编辑出来的和用看雪主页的CryptoCalc 1.2算出来的结果完全不同,
看完happytown斑竹的这个帖子:
【原创】Absolute MP3 Splitter Converter v2.5.6算法分析(RSA)兼FGInt库的使用
http://bbs.pediy.com/showthread.php?t=38222

知道我编辑的没有错误.

可是这个也是RSA??
和我平时看的一些文章不一样啊??
这两种计算结果有什么联系???能相互转换吗???
另外我知道有不少软件也是用FGInt库计算RSA的,可以得到CryptoCalc 1.2的计算结果,例如windows优化大师,如果我想用FGInt库写出可以得出CryptoCalc 1.2结果的计算工具,应该怎么编辑???

我的RSA知识的于论坛上的几篇破文,第一次遇到这样的情况,也第一次看到关于FGInt库的使用方面的破文,希望各位大虾们赐教.

我的测试数据:
E=17,N=1517,D=593,M=123
完全按照 加密解密II 上的那几个数据写的,应该得到的结果是:1107 ,可是用FGInt库编辑得到的结果是:aiBGj2u

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 309
活跃值: (15)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
我编辑的代码:

procedure TForm1.Button1Click(Sender: TObject);
var
str1,str2:string;
e,n:tfgint;
begin
str1:=edit3.text;
Base10StringToFGInt(edit1.Text, e);
Base10StringToFGInt(edit2.text, n);
RSAEncrypt(str1, e, n,str1);
ConvertBase256to64(str1,str2);
edit4.text:=str2;
FGIntDestroy(e);
FGIntDestroy(n);
end;
2007-4-27 23:30
0
雪    币: 234
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
你看看是否10/16进制以及base64的问题.tools用的全是16进制.
2007-4-28 08:17
0
雪    币: 309
活跃值: (15)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
4
好象不是的,
我编的这个东西可以用来计算happytown斑竹文章里所说的那个软件的注册码~~
2007-4-28 12:11
0
雪    币: 309
活跃值: (15)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
5
用OD跟了下,我用FGInt库编辑出来的那个东西出现二进制形式的结果了(和windows优化大师的一样,在M前加了"111"),可是不知道怎么回事,突然又把这些二进制的数字串分成6位一个的,然后找出这6位对应的一个表中的字符连接起来就是我编写的这个东西的结果了

那个表是什么东西???
和RSA什么关系???
2007-4-28 15:40
0
雪    币: 443
活跃值: (200)
能力值: ( LV9,RANK:1140 )
在线值:
发帖
回帖
粉丝
6
支持一下,帮顶!!!等高人回答!
2007-4-28 15:44
0
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
7
不要用CryptoCalc,这个工具有不少问题。
2007-4-28 17:18
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我编辑的代码:

procedure TForm1.Button1Click(Sender: TObject);
var
str1,str2:string;
e,n:tfgint;
begin
str1:=edit3.text;
Base10StringToFGInt(edit1.Text, e);
Base10StringToFGInt(edit2.text, n);
RSAEncrypt(str1, e, n,str1);
ConvertBase256to64(str1,str2);
edit4.text:=str2;
FGIntDestroy(e);
FGIntDestroy(n);
end;

这个是RAS的一个加密的使用方式,还有另外的使用方式
2007-4-28 17:53
0
雪    币: 309
活跃值: (15)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
9
我想写一个用到RSA算法的注册机~
那FGInt库能用吗???
2007-4-28 18:38
0
雪    币: 2943
活跃值: (1788)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
10
晕死,不同的库它选择的输出结果形式并不一样。怎么能通用?
CryptoCalc 1.2 以十进制形式输出
你用的那个库:用FGInt库编辑得到的结果是:aiBGj2u  是因为它将结果进行了处理,以可见字符显示。如下:
chr64 : Array[1..64] Of char = ('a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F',
      'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p',
      'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y',
      'z', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '=');

ConvertBase256to64(str1,str2);

数学数学都是数,一般在编程中,会把它当作ASCII码转化成字符显示。每个人的喜好不一样,会有不同的结果。
例如:
     而MD5('wofan')=778F10F730CD28A38BE724735B6E2BAC
     如果像如下这样输出:
W????S[N+s[n+
谁都不知道它是什么意思。
为了全部可见:
BASE64('W????S[N+s[n+')=Vz8/P6OLP1NbTitzW24r
就好看多了。

要写RSA的Keygen,你得找个合适的库,或者自已改编一下。并非它这个库不行。HappyTown找到的这个库正是软件作者用到的库。所以他很爽,你很委曲。也许另一个作者会对结果再进行一次BASE64处理输出。而解密的时候,先来个Base64解码,你能说他出错了吗。
2007-4-28 21:08
0
雪    币: 309
活跃值: (15)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
11
[QUOTE='wofan[OCN];302686']晕死,不同的库它选择的输出结果形式并不一样。怎么能通用?
CryptoCalc 1.2 以十进制形式输出
你用的那个库:用FGInt库编辑得到的结果是:aiBGj2u  是因为它将结果进行了处理,以可见字符显示。如下:
chr64 : Array[1..64] Of char = ('a', ...[/QUOTE]

收到了,多谢兄弟指点,我最后决定修改这里的函数用来写RSA(实在找不到Delphi)可用的RSA源码了,
哪位朋友有的话能否发给我个:
goqq2008#gmail.com

多谢了~~
2007-4-28 21:45
0
游客
登录 | 注册 方可回帖
返回
//