贸易飞完工,发布并上传,收工休息下
经过十多年的努力,贸易飞算法总算完成,这是一个具有数字签名与密钥传递功能的算法,功用类同于RSA,程序也完成,最近几天终于发布了。自我庆祝一下,也给自己放假休息。
资源已经上传,核心部分未公开,外围的接口等全部开源,对此有兴趣的同学可以下载下来看看,源码能编译运行,但随机数函数要自己写,源码当中用一个定值来代替随机数。
本人长于数学而劣于编程,软件的界面十分粗糙,还望大虾指点,请勿见笑。 --------------------编程问答-------------------- 帮你给个连接:http://download.csdn.net/detail/u010082352/5195633
感谢分享 --------------------编程问答-------------------- 感谢易做图,感谢CSDN,也感谢楼上的兄弟。
小弟初来,还不太习惯,不大会弄,自己也想过粘个链子,但没找到,呵呵,谢谢楼上。
总算告一段落,下边写点随笔,权当放松与回忆。先写写自己是如何与VB结缘的。
本人自小喜欢数学,虽然最后没有学数学,但也好歹是理工科。
很久以前在当时还是“内部发行 注意保密”的参考消息上看到关于RSA的介绍,还随文发布了一个很大的数,说是日前的人力与机器计算能力,无法分解出该数的公因数,据推测要多少多少万年,人们才能把这个数分解出来(后来该报“读者来函照登”又提到:1.这是外国原文,数字是原文当中提供的,2.经有心的读者核实,该数字的确有个很小的因数,很快就被人分解了),从此就迷上了非对称加密算法。当然,我是没有试图要分解过这个数字,呵呵,是不敢用笔去试。
近二千年时,贸易飞算法成型,想将其制作成程序。说明一下,成型是指有个样子与大致的轮廓,就像胎儿在母体当中有了鼻子眼睛,甚至有了小弟弟,能分辨是男是女,但要真正出来成为个“人”,还有最后最关键的一步,定型出世。这是最痛苦最关键的一步,我说自己搞了十来年,也是从这儿开始计算的。
此前,本人在中学的课外活动兴趣小组学过“背死课”,是书面学习,背命令语法,学校的机器,宝贝的不得了,就是老师给我们演示过一下,摸都没让学生摸过。
大学时,学过“怕死他”,也是书面学习了一学期,不过大学毕竟不同中学,一学期能有几次上机的机会。当时,学校安排是在计算中心的小型机上上机,别看名字是“小型机”,当时也是华南一块数得着的机器啦。现在想想很有意思:
上了一学期的机,不会,也没有开关过机器。小型机不是微机,一台机器连许多的终端,我们每人上机时一个台位一个键盘一个显示器,当年还没有小老鼠,学完了一门科,没见过主机啥样子。
背死课的除法符号是/\,而怕死他的除法就是数学当中的除号,冒号中间加一杠(我现在也打不出这个除号),第一次上机,老师要我们把作业录入机器当中,我找了半天也没有在键盘上找到除号,一问老师,老师说“先按住冒号,别松手,另一只手再按一下横杠”,呵呵,有意思吧。
两千年要做程序时,先就得选算法,选什么呢?问卖电脑的,我告诉他说用过背死课和怕死他,虽然都已经还给了老师(好借好还,再借不难吗),但毕竟摸过。他告诉我,那就用背死课吧,微软自带有QB(是微软的QB,可不是腾讯的QB),如用其他算法语言,都需要软件安装,这个不用,直接就可以在系统里找到并启动起来,先把贸易飞的数字签名加密算法从数学上用QB做出来验证一下,如通过了,再进一步用开发工具把算法包装起来做成程序。
如此,我就走上了背死课、再走上了喂药.背死课这一不归之路。
自己买第一台计算机时,现在回想,那真易做图一个贵字呀,两年的工资,如果当时不买机,买房子的话,不敢说能买个客厅卧室什么的,卫生间至少是能买两个啦。一个字:真贵!呵呵。 --------------------编程问答-------------------- 数学小白路过...... --------------------编程问答-------------------- 感谢楼主分享,虽然看了贴子还不清楚在什么场合可以应用这个。
不过还是先下载来看看。
楼主在2F说的:老师说“先按住冒号,别松手,另一只手再按一下横杠”
我刚才试了半天,还真没试出西文的÷符号怎么输出来的……
我只知道,在知道字符的ASCII码的情况下,可以用Alt+小键盘数字来输入一些键盘上没有的字符(包括扩展字符集中的字符)。 --------------------编程问答--------------------
关于老师的说法,要知道,那是八十年代的事,是当时的计算机,现在在微机上用这种方法,怕是不行了。
关于在什么场合可以应用这个,可以这么说,如果数据标准没问题,你可以自定你的软件的数据标准,则凡是用到RSA/ECC/ElGamal的场合,都可以用贸易飞的这个模块来替代,优点的密钥制作与加密运行都很简单很快,强度也很高,缺点就是公钥长,几十K,呵呵。还有一大优势,就是作者是华人,实在有问题时,你可以打电话找他要接口规范。
下边接着闲聊,说说我的VB之路。
本人还是比较支持环保与绿色的,为了节省资源,喜欢续帖而不是发新帖。
要说QB,还真的简单,没几天就找回了感觉,高精尖的问题我不敢说,也涉及不到,我要用到的,就是数字计算而已,很快就熟练了,下一步,当然就是开发环境啦。
既然上了QB的贼船,自然而然地下一步肯定是选择用VB啦。
要说背死课,我还真得挺有好感,简单容易,至于功能吗,我不开发操作系统也不写底层的驱动程序,其功能对我来说已经足够。据说,比尔该死曾经扬言,凡是能用其他语言写出来的东东,他都能用背死课把它写出来!
VB的特点与QB相同,简单易学,容易上手,源文件也简单。举个例子,写一个程序,只有一个界面,只有一个按钮,点一下按钮就跳个框出来“我成功啦”,如果你已经安装好了VB,即便你从未做过程序,我在远程也可以用电话告诉你怎么做,几分钟你就能做出来。而源文件,总共只有两个:一个工程文件,一个窗体文件(其他还有许多的文件,但都可以删除)。
而如果你是用VC做上边的例子,怕就没有这么简单啦。我曾经想把贸易飞算法用VC制作成标准正宗的DLL,打开VC一看,我的乖乖,我一行代码还没有写呢,就已经自动生成了N多的文件,还有N多的代码。我照着书本研究了好几天,还没有找到我要写代码的地方,还搞不明白我自己的代码应该写哪里呢,呵呵。
对于专业人员,得承认,VC远比VB强悍,这有个比方,就像是“高校改革”(迷底是什么?)与冲锋枪,当然洲际导弹强悍啦。但这是国与国之间的事呀,如果你只是保家护院,看守一个仓库,还是派几个哨兵扛几枝冲锋枪好使。如果你不是专业开发,只是普通的应用程序、甚至是业余爱好,VB远比VC好。
用VB开发,个人感觉:无他,唯胆大而已。
不用理会别人怎么讲,要知道,除了用VB的人,其他程序员都鄙视VB,都认为他很弱,都认为他不行,但实际上VB真的是什么都能做。如果你想做点什么,只要下定决心,VB一定能做出来。大约是03/04年,我在网上遇到个牛人,大型国企的,为企业做了个数据传输,据他自己说,他设在四川公司总部的服务器,他把WinSock分成十组,每组一千个,与各地的分支机构传递信息,相当好使,没有任何问题。一万个WinSock启动起来,这足以与当年的大型门户网站媲美啦。
用VB开发,还有一大好处,资源多。
要知道,作为非专业的,开山鼻祖开创先河之类的美誉,是轮不以你我的。
也就是说,只要是你想得到的东西,只是是你遇得到的问题,别人都已经想到过,别人都已经遇到过,所以,有什么问题,上网去百度一下,通常都能找到现在的答案。
做加密,离不了随机数,我开始时,第一个想法,很自然地想到了VB自己的随机数,后来一查资料,否决了。那如何得到好的随机的数呢?上网一问一查,结果很快有了,用时间或者鼠标坐标。如何取精确的时间或者坐标呢?网上资料很多,很快就找到了。
我玩过通讯,如果在计算机间通讯呢?马上就会有人告诉你用WinSock。这东东具体如何用呢?当然没人告诉你细节,太复杂大多,整个都是一本书啦,但有热心人会告诉你个大概,再下一步遇到具体问题时,再查具体的细节问题,很快都能找到答案,或者有人告诉人。我从一个从未做过程序的,从决定试下通讯开始,到完成第一个能通讯的例子,也就两三天时间。
也许是我的思维方式比较发散,喜欢想到哪说哪,没个中心。说下第一次自己远程通讯的情况,当时是在家里与办公室之间,是自己一个人,没人会玩,也没人配合我。中午下班时,在办公室启动自己的程序,查到办公室机器自己的IP,记下,关门回家。到家,启动家里的程序,输入办公室的IP,端口没问题,是动态IP,端口是固定的,在发送文本框里输入些字符,点一下发送按钮,马上就在接收文本框当中显示出“这是回传的文字,刚才你说*******”,呵呵,挺有意思的。
这,得要感谢CSDN网站讲坛及其中的N多热心网友。相信,如果在用VB时遇到什么问题,在此通常都会有人帮你一把的。
据说,一个最简单的芯片,其结构也比一台汽车复杂。如果把VB的所有资料打印出来,也可能会是一座图书馆。所以,没必要把VB看得很高深,否则你会自己把自己吓住;也没必要把VB学得很好,毕竟用VB的,几乎都不是专业人员,不是为了专业编程而为,我们要做的,就是把自己要用到的东西找到并熟悉一下,就可以了。
以WinSock这么一个控件(仅仅是VB当中N多控件当中的一个而已)为例,我有一段时间十分迷恋通讯,搞了很多的通讯小玩具,下过一本专家的关于WinSock的电子书,看了下页码,有一千多页,乖乖。
有人说,无知者胆大,我就是这样,没有任何顾虑,不会去想这个东西VB做不了,那个东西VB不可能。不管WinSock那么多细节,先照范例放个WinSock到界面上去,启动起来再讲,当然,一开始,肯定是许多的出错提示,一会儿说你端口没绑定,一会儿说你主机名不对,一会儿说你数据类型有问题,我是兵来将挡水来土屯,见招拆招,遇到什么东西再去翻书找资料。也不是很费事,很快,一个最简单但却能通讯的VB就出来啦。至今,少说也玩过十来个小工具,从最简单的接收原文然后返回,到招标竞价小工具,我都做过,但说来惭愧,WinSock那么多的方法事件与属性,我只懂最常用的五六个。但,这并不妨碍我玩WinSock,现在,企业面对上百的客户进行竞价招标,我都敢用VB+WinSock来写。我还用WinSock写过POP3/SMTP,只是发信时通常出问题,大家知道现在的服务器会查IP,防垃圾邮件防得很严,但也有能混过去的。
--------------------编程问答-------------------- 又一个“老家伙”,有意思 --------------------编程问答--------------------
呵呵,是呀,不光人是老家伙,连我的机器也是老家伙,半G的内存,一G多点的赛羊。本来这次回老家,想多来看看,多写点随笔,也多说说自己的一些经历与经验,可怜我的老家伙的机器,一到这儿,就有点要死机的感觉。先抱怨一下,论坛干吗要搞得这么复杂,开始我还以为是网站有问题有病毒呢,后来用别人的机器上来一看,很正常,才明白是自己的机器太旧了。
来到CSDN,真有一种回家的感觉。十年前,我也曾经在此活跃过一阵,当年是刚接触VB,尤其喜欢WinSock,常喜欢在此高谈阔论。
中间,有近十年没来了,原先的用户名也忘记了,当年经常上的几个网站,CSDN在VB方面(别的我不懂,也不去转悠)还是老大,虽然比以前老迈了许多,门庭冷落了许多。原来我还记得有个vbask的网站,现在连域名都已经放弃了。另外一个vb打头的网站,十年后的今天倒也还在,但可能是管理员度假去了,我注册了一个月,还是待验证用户。只有我们的csdn仍旧。
不知道现在,csdn上还有十年前的与我一样的老家伙?十年前就来过csdn的朋友请吱一声,呵呵。 --------------------编程问答-------------------- 顶楼主一下,包括字里行间的十年苍桑... --------------------编程问答-------------------- 这个软件做什么的呢? --------------------编程问答-------------------- 这个软件做什么的呢?
对文件(不是软件版权保护时,对软件进行加密;是对文件,如你发给商业伙伴的合同)进行加密,这不稀奇。
你把合同加密后发给对方,总得把解密的密码也要告诉对方的,这,一般的软件做不到,贸易飞可以把解密的密钥与加密的合同一起发给对方收件人。这类功能目前只有GPG等少数软件有。
对文件(如合同、财务报表等,不是软件版权保护时所说的对软件进行签名)进行数字签名,效果在法律上就如同亲笔在纸质文件上签名。
类似的软件,有PGP、各家认证机构发布的数字证书等。
补充:VB , 基础类