1.那位高人帮我破下一个MD5的源码密码啊?
2.玉兔号采用的什么处理器?
那位高人帮我破下一个MD5的密码啊?
MD5简介
MD5的全称是Message-Digest Algorithm 5,在年代初由MIT的源码计算机科学实验室和RSA Data Security Inc发明,经MD2、源码MD3和MD4发展而来。源码
Message-Digest泛指字节串(Message)的源码Hash变换,就是源码屏幕共享源码哪个把一个任意长度的字节串变换成一定长的大整数。请注意我使用了“字节串”而不是源码“字符串”这个词,是源码因为这种变换只与字节的值有关,与字符集或编码方式无关。源码
MD5将任意长度的源码“字节串”变换成一个bit的大整数,并且它是源码一个不可逆的字符串变换算法,换句话说就是源码,即使你看到源程序和算法描述,源码也无法将一个MD5的源码值变换回原始的字符串,从数学原理上说,源码是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。
MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。jnpf 源码下载举个例子,你将一段话写在一个叫readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。
MD5还广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以MD5值(或类似的其它算法)的方式保存的,用户Login的时候,系统是把用户输入的密码计算成MD5值,然后再去和系统中保存的MD5值进行比较,而系统并不“知道”用户的密码是什么。
一些黑客破获这种密码的方法是一种被称为“跑字典”的方法。有两种方法得到字典,成都源码学习一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。
即使假设密码的最大长度为8,同时密码只能是字母和数字,共++=个字符,排列组合出的字典的项数则是P(,1)+P(,2)….+P(,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘组,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。
在很多电子商务和社区应用中,管理用户的Account是一种最常用的基本功能,尽管很多Application Server提供了这些基本组件,但很多应用开发者为了管理的更大的灵活性还是喜欢采用关系数据库来管理用户,懒惰的做法是用户的密码往往使用明文或简单的变换后直接保存在数据库中,因此这些用户的1250炒股源码密码对软件开发者或系统管理员来说可以说毫无保密可言,本文的目的是介绍MD5的Java Bean的实现,同时给出用MD5来处理用户的Account密码的例子,这种方法使得管理员和程序设计者都无法看到用户的密码,尽管他们可以初始化它们。但重要的一点是对于用户密码设置习惯的保护。
有兴趣的读者可以从这里取得MD5也就是RFC 的文本。.ibm.com/developerWorks/java/jw-tips/tip/index.shtml
这里讲述了把测试和示例代码放在一个内部静态类的好处,是一种不错的工程化技巧和途径。
把Java Bean装到JSP里
正如我们在本文开头讲述的那样,我们对这个MD5 Bean的应用是基于一个用户管理,这里我们假设了一个虚拟社区的用户login过程,用户的信息保存在数据库的个名为users的表中。这个表有两个字段和我们的这个例子有关,userid :char()和pwdmd5 :char(),userid是这个表的Primary Key,pwdmd5保存密码的MD5串,MD5值是一个bit的大整数,表示成进制的360测评源码ASCII需要个字符。
这里给出两个文件,login.html是用来接受用户输入的form,login.jsp用来模拟使用MD5 Bean的login过程。
为了使我们的测试环境简单起见,我们在JSP中使用了JDK内置的JDBC-ODBC Bridge Driver,community是ODBC的DSN的名字,如果你使用其它的JDBC Driver,替换掉login.jsp中的
Connection con= DriverManager.getConnection("jdbc:odbc:community", "", "");
即可。
login.jsp的工作原理很简单,通过post接收用户输入的UserID和Password,然后将Password变换成MD5串,然后在users表中寻找UserID和pwdmd5,因为UserID是users表的Primary Key,如果变换后的pwdmd5与表中的记录不符,那么SQL查询会得到一个空的结果集。
这里需要简单介绍的是,使用这个Bean只需要在你的JSP应用程序的WEB-INF/classes下建立一个beartool目录,然后将MD5.class拷贝到那个目录下就可以了。如果你使用一些集成开发环境,请参考它们的deploy工具的说明。在JSP使用一个java Bean关键的一句声明是程序中的第2行:
<jsp:useBean id='oMD5' scope='request' class='beartool.MD5'/>
这是所有JSP规范要求JSP容器开发者必须提供的标准Tag。
id=实际上是指示JSP Container创建Bean的实例时用的实例变量名。在后面的<%和%>之间的Java程序中,你可以引用它。在程序中可以看到,通过 pwdmd5=oMD5.getMD5ofStr (password)引用了我们的MD5 Java Bean提供的唯一一个公共方法: getMD5ofStr。
Java Application Server执行.JSP的过程是先把它预编译成.java(那些Tag在预编译时会成为java语句),然后再编译成.class。这些都是系统自动完成和维护的,那个.class也称为Servlet。当然,如果你愿意,你也可以帮助Java Application Server去干本该它干的事情,自己直接去写Servlet,但用Servlet去输出HTML那简直是回到了用C写CGI程序的恶梦时代。
如果你的输出是一个复杂的表格,比较方便的方法我想还是用一个你所熟悉的HTML编辑器编写一个“模板”,然后在把JSP代码“嵌入”进去。尽管这种JSP代码被有些专家指责为“空心粉”,它的确有个缺点是代码比较难管理和重复使用,但是程序设计永远需要的就是这样的权衡。我个人认为,对于中、小型项目,比较理想的结构是把数据表示(或不严格地称作WEB界面相关)的部分用JSP写,和界面不相关的放在Bean里面,一般情况下是不需要直接写Servlet的。
如果你觉得这种方法不是非常的OO(Object Oriented),你可以继承(extends)它一把,再写一个bean把用户管理的功能包进去。
到底能不能兼容?
我测试了三种Java应用服务器环境,Resin 1.2.3、Sun J2EE 1.2、IBM WebSphere 3.5,所幸的是这个Java Bean都没有任何问题,原因其实是因为它仅仅是个计算程序,不涉及操作系统,I/O设备。其实用其它语言也能简单地实现它的兼容性的,Java的唯一优点是,你只需提供一个形态的运行码就可以了。请注意“形态”二字,现在很多计算结构和操作系统除了语言本身之外都定义了大量的
玉兔号采用的什么处理器?
玉兔号巡视器的主控系统称为“综合电子”分系统,其核心是基于Atmel ATF芯片。该芯片是基于ESA开发的SPARC V8兼容处理器Leon2。Leon2的设计源代码按照LGPL协议公开,允许下载,中国团队能够获取并用于国内处理器制造商的山寨产品中。一些制造商试图修改原始设计,但常常出现错误。由于太空环境中的高能带电粒子会引发严重的位翻转问题,航天器通常采用低频处理器来提高抗干扰性。SPARC处理器是开源的,其设计和架构完全开放,遵循LGPL规范,因此被广泛采用。其他如PPC和MIPS处理器也有使用,但同样会选择较低的工作频率以增强抗干扰能力。
“玉兔号”是中国的第一辆月球车。年月日,中国国防科技工业局宣布将“嫦娥三号”的月球车命名为“玉兔号”,其设计质量为千克,以太阳能为能源,能够承受月球表面的极端环境,包括真空、极端温差等。月球车具备爬坡和越障的能力,并装备了全景相机、红外成像光谱仪、测月雷达等科学探测设备。年月2日,西昌卫星发射中心成功将嫦娥三号探测器(包括着陆器和“玉兔号”月球车)送入轨道。月日,“玉兔号”顺利抵达月球表面开始巡视工作。年4月1日,玉兔号完成了其设计寿命内的任务,距离着陆器米处停止工作。然而,“玉兔号”月球车在年9月6日进入第十个月昼工作期,超额服役了7个月。年2月,中国发布了“玉兔”拍摄的月球图像。到了年7月日晚,“玉兔号”月球车完成了其使命,停止了工作。