现代密码学java源代码 现代密码学难学吗( 九 )


源代码是指原始代码,可以是任何语言代码 。
汇编码是指源代码编译后的代码,通常为二进制文件,比如DLL、EXE、.NET中间代码、JAVA中间代码等 。
高级语言通常指C/C++、BASIC、C#、JAVA、PASCAL等等汇编语言就是ASM,只有这个,比这个更低级的就是机器语言了 。
源程序源文件源代码是一回事 。
参考资料来源:百度百科-源代码
怎样把一个java源代码做成一个软件成品?其实就是用一个外部程序 调用java虚拟机运行你的java程序 。
可以做一个批处理文件 , 在里面调用java 虚拟机运行你的java程序 。
也可以用某种编程语言,像vb ,c 或c++编个程序,生成exe , 能调用java虚拟机运行你的程序,很简单的 。
【源代码】
源代码(也称源程序),是指一系列人类可读的计算机语言指令 。在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序 。
md5 算法程序+详细注释,高分求教!MD5加密算法简介
一、综述
MD5的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来,经md2、md3和md4发展而来 。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一 个任意长度的字节串变换成一定长的大整数) 。不管是md2、md4还是md5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要 。虽然这些 算法的结构或多或少有些相似,但md2的设计与md4和md5完全不同 , 那是因为md2是为8位机器做过设计优化的,而md4和md5却是面向32位的电 脑 。这三个算法的描述和c语言源代码在internet rfcs 1321中有详细的描述(),这是一份最权威的文档,由ronald l. rivest在1992年8月向ieft提交 。
rivest在1989年开发出md2算法 。在这个算法中,首先对信 息进行数据补位,使信息的字节长度是16的倍数 。然后,以一个16位的检验和追加到信息末尾 。并且根据这个新产生的信息计算出散列值 。后来,rogier 和chauvaud发现如果忽略了检验和将产生md2冲突 。md2算法的加密后结果是唯一的--既没有重复 。
为了加强算法的安全性,rivest在1990年又开发出md4算法 。md4算法同样需要填补信息以确保信息的字节长度加上448后能被512整除(信息字节长度mod 512 = 448) 。然后,一个以64位二进制表示的信息的最初长度被添加进来 。信息被处理成512位damg?rd/merkle迭代结构的区块,而且每个区块要 通过三个不同步骤的处理 。den boer和bosselaers以及其他人很快的发现了攻击md4版本中第一步和第三步的漏洞 。dobbertin向大家演示了如何利用一部普通的个人电 脑在几分钟内找到md4完整版本中的冲突(这个冲突实际上是一种漏洞,它将导致对不同的内容进行加密却可能得到相同的加密后结果) 。毫无疑问,md4就此 被淘汰掉了 。
尽管md4算法在安全上有个这么大的漏洞,但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用 。除了md5以外,其中比较有名的还有sha-1、ripe-md以及haval等 。
一年以后,即1991年,rivest开发出技术上更为趋近成熟的md5算法 。它在md4的基础上增加了"安全-带子"(safety-belts)的 概念 。虽然md5比md4稍微慢一些,但却更为安全 。这个算法很明显的由四个和md4设计有少许不同的步骤组成 。在md5算法中,信息-摘要的大小和填充 的必要条件与md4完全相同 。den boer和bosselaers曾发现md5算法中的假冲突(pseudo-collisions),但除此之外就没有其他被发现的加密后结果了 。

推荐阅读