JAVA 和.NET在安全功能的比较-Java基础-Java-编程开发

软件开发平台之争:NET VS Java,谁是更好的选择? 全文共3370字,预计学习时长9分钟 作为软件开发新手,为自己选择未来职业生涯中将使用的平台并不容易。掌握任何一种编程语言都会花费大量的时间和精力,而这些恰恰是你最不想浪费的。选错平台可能会需要改变知识面来胜任工作,这让人们倍感压力。 在此,我帮你将选择缩小到以下两个选项:Java或者.NET。这已经是一个巨大的进步了,这两种选项都算是成功。Java和.NET都很稳定,可以用于企业级别的开发,这意味着你可能会就职于一家拥有大量资源和机会的大公司。 先来看看就业市场!截至202... 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

本文根据Denis Piliptchouk的文章翻译、摘录而来,有些术语翻译不太好理解,还请参考原文。

第一部分 安全配置和代码封装

安全配置

两个平台的配置都是通过XML或纯文本文件,两个平台最大的区别在于处理安全配置体系的方式不同。

在.NET平台,有图形接口和命令行二种方式来修改安全配置参数。Mscorcfg.msc是图形接口方式,Caspol.exe提供了命令行方式,适用于批处理或配置文本。

JAVA平台只提供了图形接口的工具policytool.exe。和.NET不同的是,它的目标对象(配置文件)的名字和位置不是固定的。

.NET定义了不同范围的安全配置文件:系统范围,本机范围,本用户范围。在配置有冲突时,原则上小范围的参数有优先权。

JAVA和J2EE的核心配置文件都保存在固定位置,但扩展配置文件随厂家不同而不同。

代码封装:检验

JAVA 和.NET 的Common Library Runtime (CLR) 都实行内存安全或类型安全的保护机制,在这些平台开发的应用的安全性也是可以检验的。他们的实现机制有很大的不同。

在.NET, CLR总是执行编译好的代码,它不解释代码。但是在中间语言(IL)被编译之前,编译器会有验证和检验的步骤。第一步是检查文件的结构和代码完整性;第二步包括一些扩展的检查,内存安全、堆栈跟踪、数据流分析、类型检查等。在运行阶段,由VES (Virtual Execution System) 来负责安全性检查和出错意外情况处理。

在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平台的加密算法分二个部分:Java Cryptography Architecture (JCA) 和 Java Cryptography Extension (JCE)。 JCE的出口受到有关法律的限制。如果要使用用户自己的加密算法,必须得到认证机构(SUN 或 IBM)的认证。

加密法:算法

.NET主要提供了下面几大类加密算法:非对称算法、HASH算法、对称算法、随机数生成法。

JAVA提供的加密算法更多,但是较少第三方厂商可以在JAVA中提供自己的算法。

安全通信

SSL已经是事实的传输安全的工业标准了。JAVA和.NET都支持最新版本 SSL 3.0。

安全通信:平台

.NET只在基于IIS的应用中使用SSL来保护HTTP传输,对于非IIS应用,.NET不能保护传输中的数据。

在JAVA中,JSSE (Java Secure Socket Extensions) 提供了平台级的服务,保证基于TCP/IP的通信安全。

除了IIS,.NET没有提供任何其它平台级的通信保护的标准方案,但是JAVA在这方面提供了全套的解决方案。

安全通信:应用

.NET通过WSA (Web Service Architecture)和 WSE (Web Service Extension) 包来提供最新的WEB服务安全保证,JAVA目前还没有提供这方面的支持。

总结: 在加密方法上,JAVA和.NET基本没有太大的差别;在通信保护方面,JAVA 比.NET提供了更多的选择方案;但是在WEB服务安全性上,JAVA明显比.NET落后一些。

Java与.NET平台的安全功能比较和分析 Java和.NET平台都提供了广泛的加密和密码学支持,用于保护数据的机密性和完整性。.NET平台则提供了类似的加密和密码学库,包括对称加密算法(如AES和DES)、非对称加密算法(如RSA和DSA)以及哈希算法(如SHA和MD5)等。综上所述,Java和.NET平台都提供了强大的安全功能,包括语言级安全性、访问控制和权限管理以及加密和密码学支持。无论是Java还是.NET,都提供了丰富的工具和库来保护应用程序的安全性,并提供了灵活的机制来控制对资源的访问权限。 阅读详情

相关推荐

.NET C#编程基础与实例实战教程

本文还有配套的精品资源,点击获取 简介:本教程旨在为初学者提供深入的C#基础知识和.NET技术的实践指导。涵盖C#基础语法、面向对象编程、异常处理、文件操作、Windows Forms、*** Web开发、LINQ查询、多线程以及.NET Framework类库的应用。通过实例教学和需求分析文档,帮助学习者掌握C#编程技能,并为未来的进阶学习打下坚实基础。 1. C#...

weixin_36282234的博客 1751

JAVA 和.NET在安全功能的比较

本文根据Denis Piliptchouk的文章翻译、摘录而来,有些术语翻译不太好理解,还请参考原文。 第一部分 安全配置和代码封装 安全配置 两个平台的配置都是通过XML或纯文本文件,两个平台最大的区别在于处理安全配置体系的方式不同。 在.NET平台,有图形接口和命令行二种方式来修改安全配置参数。Mscorcfg.msc是图形接口方式,Caspol.exe提供了命令行方式,适用于批处理或...

weixin_30702413的博客 200

【CubeMX】STM32G474 HRTIM 互补PWM与死区时间配置实战

本文详细介绍了如何使用STM32CubeMX配置STM32G474的高分辨率定时器HRTIM生成互补PWM波形并精确设置死区时间。通过实战步骤讲解时钟配置、死区计算与高级功能,帮助工程师在电机驱动和电源应用中实现精准控制,避免上下桥臂直通风险。

grpc6streamer的博客 729

Java与.Net的区别

而 .NET 起初是为 Windows 开发的,但现在已经有了 .NET Core,它是一个跨平台的开发平台,可以在多个操作系统上运行。而 .NET 生态系统则是由微软主导,拥有一系列的开发工具和框架。Java 以其平台无关性和丰富的生态系统而广泛使用,可以在不同的操作系统上运行。1. 语言:Java 使用 Java 编程语言,而 .NET 使用 C#、VB.NET、F# 等多种编程语言。Java 和 .NET 是两个不同的软件开发平台,它们在语言、生态系统、跨平台性和开发工具等方面有着不同的特点。

Auspicious航的博客 6275

树莓派上基于ONNXRuntime与Qt的C++模型部署实战指南

本文详细介绍了在树莓派上使用ONNXRuntime与Qt进行C++模型部署的完整流程。从环境配置、依赖安装到交叉编译优化,再到Qt界面集成与ARM架构性能调优,提供了实战指南和常见问题解决方案,帮助开发者高效完成边缘设备上的AI应用部署。

ik6789012的博客 339

Android开发者必看:5分钟搞定MQTT客户端连接EMQX服务器(附完整代码)

本文为Android开发者提供了一份快速实现MQTT客户端连接EMQX服务器的实战指南。通过引入Eclipse Paho SDK,详细讲解了从项目配置、权限申请到核心连接、主题订阅与消息发布的完整流程,并附有即拿即用的Kotlin代码,帮助开发者在物联网应用中高效集成轻量级实时通信功能。

weixin_29228781的博客 272

.Net和Java的执行性能比较

首先,我个人不是那种执着于语言之争的那种人,不过今天测试了下Java和C#的执行效率。 测试计算100000000次PI值的代码如下: C#的代码: using System; public class CalcPI {  public const int Count=100000000;  public static void Main(string[] args)  {

zy974400763的专栏 6084

告别水印!Vue3项目集成Stimulsoft.Reports.js完整配置与激活指南

本文详细介绍了如何在Vue3项目中集成Stimulsoft.Reports.js,提供从授权策略到性能优化的完整解决方案。通过模块化架构设计和现代化引入方式,帮助开发者高效实现专业级报表功能,同时避免版权风险和水印问题,特别适合中小型项目需求。

weixin_33701294的博客 432

.net java效率,java和.net对于xslt处理性能对比,java大幅领先 | 学步园

现在正在做一套基于存xml的网站架构,基于.net,其中有个核心模块是用来动态合成xml与xslt成html,发现性能低下到不可忍受的地步,做了一个xslt解析器缓存容器,发现初始话的时候还是很耗时,对于一个多皮肤的网站来说缓存所有skin也是不可想象的,所以本身性能也是需要考量的一个重要方面。经简短测试,java领先.net 3倍左右,两者都没有经过任何优化,同一机器,同一网速,.net分别采用...

weixin_35401836的博客 405

MEMS惯性传感器关键参数解析与误差优化策略

本文深入解析了MEMS惯性传感器的关键性能参数,如零偏稳定性、噪声与随机游走、振动整流误差等,并阐述了这些误差如何导致设备导航漂移、姿态不稳等问题。文章重点探讨了从硬件选型、系统设计到校准补偿、算法融合(如卡尔曼滤波)以及温度补偿等实战优化策略,旨在帮助工程师有效提升自动驾驶、无人机等设备的测量精度与稳定性。

weixin_28363123的博客 415

Virbox Protector:全方位守护 Android 应用安全

在数字化浪潮中,Android 应用面临着诸多安全挑战,如破解、篡改、盗版、数据窃取和钓鱼欺诈等。为了应对这些复杂的安全问题,Virbox Protector 应运而生,为 Android 应用提供高强度的专业化安全保护,支持对 APK 和 AAB 文件的加固保护,并兼容 Google Play,助力应用顺利出海。

VBP_2025的博客 997

Java 11 和 Java 12 分别与 .NET Core 2.2 和 .NET Core 3.0 (preview 6) 的性能对比测试

测试环境: 系统:Windows 10 x64 1809 CPU:Intel i7-7660U 内存:8GB 测试方法:对含1048576个复数的序列进行 FFT 运算

hez2010的博客 1万+

整理 钢琴 约翰·汤普森现代钢琴(大汤)

大汤

TS的博客 4004

大佬老聊聊PHP,JAVA,NET 开发比较

JAVA:JAVA产生与1995年,JAVA语言和JAVA平台统称为JAVA;它语法与C语言和C++语言很接近,并且JAVA是面向对象编程语言,JAVA是编译性语言,可以先将JAVA源码编译成.class文件后,在JAVA虚拟机上解释执行。.NET:在.NET中,多种编程语言支持开发如:VB、C#、F#等等,通常我们都在使用C#编程,C#是为.NET平台专们打造的一种编程语言,产生与2000年。其语言语法和JAVA、C、C++相近,同样也是一种面向对象编程语言。C#同样需要编译为.dll文件,然后由.net

不定时分享最优质的网络技术与教程,满满的干货。 2587

第14.10章 高翔博士最新开源框架Lightning-LM源码解读(十):在线定位run_loc_online涉及到的核心模块总结

本文对Lightning-LM激光SLAM定位框架进行了全面剖析。该框架是一个轻量高效的激光雷达建图与定位系统,支持3D SLAM、动态图层管理等功能。文章首先介绍了项目概况和源码结构,包括核心模块如定位系统(loc_system)、激光匹配(lidar_loc)和位姿图优化(pose_graph)等。接着详细解析了各模块的关键函数和运行流程,如数据接收处理、NDT匹配和位姿优化等。最后总结了学习该框架所需的C++知识要点,包括智能指针、多线程编程等现代C++特性。该分析为SLAM开发者提供了实用的架构参考

行知SLAM 802

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

.NET和JAVA 在安全功能的比较

  两个平台的配置都是通过XML或纯文本文件,两个平台最大的区别在于处理安全配置体系的方式不同。 第一部分 安全配置和代码封装   安全配置   两个平台的配置都是通过XML或纯文本文件,两个平台最大的区别在于处理安全配置体系的方式不同。   在.NET平台,有图形接口和命令行二种方式来修改安全配置参数。Mscorcfg.msc...

akk47067的博客 196

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

PHP,JAVA,NET 开发比较

一、语言: PHP:PHP产生与1994年,其语法混合了C、Java、Perl 和他自创的一些编程语法;PHP是嵌入在HTML中执行的;它也是一种解释性语言。早期的PHP并非完全的面向对象编程语言,到了PHP4以后的版本才开始有了面向对象的概念。 JAVA:JAVA产生与1995年,JAVA语言和JAVA平台统称为JAVA;它语法与C语言和C++语言很接近,并且JAVA是面向对象编程语言,...

weixin_34074740的博客 287

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

.NET 基础

一、什么是.NET? 1. 概念   .NET是微软公司下的一个开发平台,.NET核心就是.NET Framwork(是.NET程序开发和运行的环境),在这个平台下可以用不同的语言进行开发,因为.NET是跨语言的一个平台,语言可以是 C#,f#,j#,vb.net 等等。顺便说一下sum公司的JAVA和.NET不同的一点是Java是跨平台的,不跨语言的,.NET跨平台仅限于安卓系统和IOS苹果系统...

来日可期的博客 6726

.net开发项目经验_Java 和.NET,谁将“统治”未来

​随着时代的变化,技术在不断发展,编程语言的重要性也在发生变化。所以,要我们在两门语言中二选一,通常很困难。在这篇文章里,我们要讨论的是 Java 和.NET 之间的“战争”。.NET 和 Java 是两个最突出的技术平台,你可以用它们来构建软件、网站和 Web 应用程序。由于它们在各自的领域都负有盛名,企业在构建应用程序时通常很难决定哪个更适合它们。在比较这两种技术之前,你首先要知道如何使用这两...

weixin_39912580的博客 2782

net java 区别_JAVA和.NET开发过程中的区别

JAVA和.NET开发过程中的区别众所周知,java与.net是不同的,那么两者到底有什么区别呢?下面跟yjbys小编一起来看看吧!Jave技术应用特点:Java开发者使用最多的JDK版本是JDK1.6和JDK1.7;使用最多的服务器是Tomcat,最常用的开发工具是Eclipse;.NET技术应用特点:.NET开发者对.NET平台最满意是其语言和框架设施部分,开发人员最关注的技术分别是ASP.N...

weixin_42501711的博客 1599

java和.net比较

自从.NET问世以来,程序员都很关心的一个问题是「该学Java或.NET」。我也在挣扎,该「该继续Java的研究,或者该开始准备培养.NET的知识」。 当然,最好是能两者兼顾,但是每个人的时间都很有限,想要兼顾两者,其实不太容易。投入在.NET的时间越多,所能花费在Java的时间

快速开发平台 1019

Java 和 .Net那个就业前景更好?

随着互联网经济的快速发展,IT行业存在着巨大的人才缺口,同时毕业大学生也在面临着就业难的考验。于是越来越多的童鞋选择再培训以获得更好的就业机会。其中java编程语言和.net呼声极高。那么到底学哪个呢?那我们就来了解下java和.net哪个更好找工作?他们的优势和劣势又如何? 目前编程语言两大语言对垒就是:微软的.net和sun公司的java。其中Java用得广,.net属于微软一个重要平台,所以在一段时间内不会被淘汰。java编程语言的优劣势? 1、Java语言是简单的。Java语言的语法与C语言和C++

java9875的博客 5737

Java和.net有什么区别

Java和.NET是两个不同的软件开发平台,它们在多个方面存在显著的区别。

weixin_44337480的博客 2204
上一篇: 全面分析Java的垃圾回收机制-Java基础-Java-编程开发
下一篇: Java写的查找重复电话号码程序-Java基础-Java-编程开发
java169
博客等级 码龄18年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值