|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有理由相信是能提供更出色的性能。很多平台无法支持复杂的编译器,因此需要二次编译来减少本地编译器的复杂度。当然可能做不到net网页编程编译器那么简易。本文依据DenisPiliptchouk的文章翻译、摘录而来,有些术语翻译不太好了解,还请参考原文。
第一部分平安设置和代码封装
平安设置
两个平台的设置都是经由过程XML或纯文本文件,两个平台最年夜的区分在于处置平安设置系统的体例分歧。
在.NET平台,有图形接口和命令行二种体例来修正平安设置参数。Mscorcfg.msc是图形接口体例,Caspol.exe供应了命令行体例,合用于批处置或设置文本。
JAVA平台只供应了图形接口的工具policytool.exe。和.NET分歧的是,它的方针对象(设置文件)的名字和地位不是流动的。
.NET界说了分歧局限的平安设置文件:体系局限,本机局限,本用户局限。在设置有抵触时,准绳上小局限的参数有优先权。
JAVA和J2EE的中心设置文件都保留在流动地位,但扩大设置文件随厂家分歧而分歧。
代码封装:查验
JAVA和.NET的CommonLibraryRuntime(CLR)都实施内存平安或范例平安的回护机制,在这些平台开辟的使用的平安性也是能够查验的。他们的完成机制有很年夜的分歧。
在.NET,CLR老是实行编译好的代码,它不注释代码。可是在两头言语(IL)被编译之前,编译器会有考证和查验的步骤。第一步是反省文件的布局和代码完全性;第二步包含一些扩大的反省,内存平安、仓库跟踪、数据流剖析、范例反省等。在运转阶段,由VES(VirtualExecutionSystem)来卖力平安性反省和堕落不测情形处置。
在JAVA平台,JAVA假造机(JVM)卖力类的载进、链接、查验和实行。关于已编译和优化的代码,JVM也用二个无前提挪用仓库来保存最后的字节代码信息。
小结:和.NET分歧,JVM的默许设置是不查验当地代码。别的,JVM保存最后的字节代码供运转时反省,而.NET把静态剖析和运转时拔出查验代码相分离。
代码封装:使用断绝
在.NET,域断绝创建在内存平安机制的基本上,分歧的域不克不及间接会见相互的地点空间,只能经由过程.NET远程通讯机制会见。
在JAVA平台,使用断绝是经由过程ClassLoaders和ProtectionDomains相分离来完成的,平安类加载是JVM平安机制的基石。
小结:.NET的AppDomains就象操纵体系的历程一样,利用起来比JAVA的ProtectionDomains更间接、简单一些。
代码封装:言语特性
两个平台基础上差未几,.NET在天真性上略微好一点。
总结:
JAVA在平安设置上有较多的上风,.NET在代码封装的选择性和易用性好一些。
第二部分加密和通讯
加密法:概论
.NET的加密法次要基于CryptoAPI和相干扩大。年夜多半有关加密的类都在System.security.Cryptography,X509Centificates和XML中。.NET使用基于流的模子来完成加密传输,一切的算法都被默许为最高的平安级别。.NET也同意用户本人在machine.config中界说本人的算法。
JAVA平台的加密算法分二个部分:JavaCryptographyArchitecture(JCA)和JavaCryptographyExtension(JCE)。JCE的出口遭到有关功令的限定。假如要利用用户本人的加密算法,必需失掉认证机构(SUN或IBM)的认证。
加密法:算法
.NET次要供应了上面几年夜类加密算法:非对称算法、HASH算法、对称算法、随机数天生法。
JAVA供应的加密算法更多,可是较少第三方厂商能够在JAVA中供应本人的算法。
平安通讯
SSL已是现实的传输平安的产业尺度了。JAVA和.NET都撑持最新版本SSL3.0。
平安通讯:平台
.NET只在基于IIS的使用中利用SSL来回护HTTP传输,关于非IIS使用,.NET不克不及回护传输中的数据。
在JAVA中,JSSE(JavaSecureSocketExtensions)供应了平台级的服务,包管基于TCP/IP的通讯平安。
除IIS,.NET没有供应任何别的平台级的通讯回护的尺度计划,可是JAVA在这方面供应了全套的办理计划。
平安通讯:使用
.NET经由过程WSA(WebServiceArchitecture)和WSE(WebServiceExtension)包来供应最新的WEB服务平安包管,JAVA今朝还没有供应这方面的撑持。
总结:在加密办法上,JAVA和.NET基础没有太年夜的不同;在通讯回护方面,JAVA比.NET供应了更多的选择计划;可是在WEB服务平安性上,JAVA分明比.NET掉队一些。
我之所以想学。NET,是因为一直觉的BILLGATES好厉害,希望有一天能去微软,虽然现在还距离遥远,呵呵:) |
|