安全的基础知识在高度保证企业应用程序安全的过程中我们不免会考虑到如下的安全需求,然后我们针对这些安全需求提出各种安全技术:1、 完整性验证(integrity verification)。也就是以防止我们需要的内容不被篡改,仍然不吃其真实性。2、 机密性保持(confidentiality preservation)。通俗的说就是防止内容被别人读懂。3、 认证和访问授权(authenticity permission)。通俗的说就是对来访者提供的信息进行分析和判断,从而确定来访者身份。然后根据身份决定该来访者具有什么权限。4、 不可抵赖的证据(nonrepudiation evidence)。据个很简单的例子,如果在网上进行相应的支付操作。如果我已经给他们钱了,但他们仍然说我没给他们怎么办?好了,这里你只要明白我们后面的介绍的技术会解决这个问题的。5、 审计证据(auditing evid...
if (clasz != null)return clasz;// 下面是定制部分try {// 读取经过加密的类文件byte classdata[] = util.readfile( name+".class" );if (classdata != null) {// 解密...byte decryptedclassdata[] = cipher.dofinal( classdata );// ... 再把它转换成一个类clasz = defineclass( name, decryptedclassdata,0, decryptedclassdata.length );system.err.println( "[decryptstart: decrypting class "+name+"]" );}} catch( file...
// 现在,获取数据并解密byte encrypteddata[] = /* 获得经过加密的数据 */// 正式执行解密操作byte decrypteddata[] = cipher.dofinal( encrypteddata );// 进一步处理解密后的数据dosomething( decrypteddata );四、应用实例 前面介绍了如何加密和解密数据。要部署一个经过加密的应用,步骤如下: 步骤1:创建应用。我们的例子包含一个app主类,两个辅助类(分别称为foo和bar)。这个应用没有什么实际功用,但只要我们能够加密这个应用,加密其他应用也就不在话下。 步骤2:生成一个安全密匙。在命令行,利用generatekey工具(参见generatekey.java)把密匙写入一个文件: % java generatekey key.data步骤3:加密应用。在命令行,利用encryptc...
resolveclass( clasz );// 把类返回给调用者return clasz;} catch( ioexception ie ) {throw new classnotfoundexception( ie.tostring() );} catch( generalsecurityexception gse ) {throw new classnotfoundexception( gse.tostring() );}}listing 2显示了一个简单的loadclass实现。代码中的大部分对所有classloader对象来说都一样,但有一小部分(已通过注释标记)是特有的。在处理过程中,classloader对象要用到其他几个辅助方法: findloadedclass:用来进行检查,以便确认被请求的类当前还不存在。loadclass方法应该首先调用它。 defineclass:获...
来源:www.ibm.com俞良松 (javaman@163.net)软件工程师,独立顾问和自由撰稿人2001 年 10 月java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。本文讨论如何在不修改原有程序的情况下,通过加密技术保护源代码。 一、为什么要加密? 对于传统的c或c++之类的语言来说,要在web上保护源代码是很容易的,只要不发布它就可以。遗憾的是,java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。java的灵活性使得源代码很容易被窃取,但与此同时,它也使通过加密保护代码变得相对容易,我们唯一需要了解的就是java的classloader对象。当然,在加密过程中,有关java cryptography extension(jce)的知识也是必不可少的。 有几种技术可以“模糊”java类文件...
你是怎么把密码储存到数据库里?是以纯文字的方式?你可知道这对安全的危险性?当攻击你网站的人能开启数据库浏览,以纯文字方式存在数据库里的密码一览无疑,基于安全上的考量,你想这样适当吗? 有什么办法能够让别人看到数据库里的数据,也没办法知道储存在其中的密码?以上问题你是否知道如何解决?本文要告诉你,如何将你的密码做加密处理,处理过后的密码字符串,就算是公开出来也没人猜得到原来的密码!首先我们来看看一组字符串:27b827277c70e88dd87e3057bfbe8f这是将密码加密后的结果,你知道加密之前的字符串是什么吗?其实是『test』。不可思议吧!经过处理后的字符串,和原本的字符串全然不同,我不说你猜的到吗?如果决定密码的人不说,这密码永远都是个秘密!毕竟这是以原本字符串为起点开始编码,你可能会怕有人用反向工程将字符串变回原本的密码,这点你就不用担心了,这编码方式是『单向』的,无法用反向...
出处 cn-java原创:liufen//package /*运行本程序你需要下载jce,bouncy castle的jce with provider and lightweight api网止是 http://www.bouncycastle.org 配置如下:在windows中,你需要把下载的bcprov-jdk14-119.jar文件拷贝到两个地方:一个在你安装的jdk目录中,比如说我的是c:j2sdk1.4.0-rcjrelibext另一个在你的jdk运行环境中,我的是在c:program filesjavaj2re1.4.0-rclibext;另外还要在对两个java.security进行修改:我的在 c:j2sdk1.4.0-rcjrelibsecurityjava.security;c:program filesjavaj2re1.4.0-...
http是一种无状态协议。当客户机向服务器发送一个请求时,服务器并不知道这是客户机的第1个还是第42个请求。这对asp开发来说无异带来了比较严重的问题,因为经常有必要给特定的客户机关联服务器方变量。 比方说,网站在向我发送我订购的jethro tull cd同时向其他人发送barry manilow cd就是因为这一关联的重要作用。asp通过称为会话id的唯一的客户标识符处理这种关联关系,当客户在开始他或她的浏览器会话时就会被分配这种会话id。现在让我们看看传统的asp和现代的asp.net围绕会话id的使用而存在的一些问题。然后,我们讨论下运行多个web服务器时的会话问题。 什么是会话id 会话id是一种唯一标识当前访问服务器的客户的只读值。在经典的asp环境下,会话id是按照顺序方式被分配的,也就是说,会话id 706616433之后跟着会话 id 706616434等等。传统的as...
你是怎麼把密碼儲存到資料庫裡?是以純文字的方式?你可知道這對安全的危險性?當攻擊你網站的人能開啟資料庫瀏覽,以純文字方式存在資料庫裡的密碼一覽無疑,基於安全上的考量,你想這樣適當嗎?有什麼辦法能夠讓別人看到資料庫裡的資料,也沒辦法知道儲存在其中的密碼? 以上問題你是否知道如何解決?本文要告訴你,如何將你的密碼做加密處理,處理過後的密碼字串,就算是公開出來也沒人猜得到原來的密碼!首先我們來看看一組字串:27b827277c70e88dd87e3057bfbe8f這是將密碼加密後的結果,你知道加密之前的字串是什麼嗎?其實是『 test 』。不可思議吧!經過處理後的字串,和原本的字串全然不同,我不說你猜的到嗎?如果決定密碼的人不說,這密碼永遠都是個秘密!畢竟這是以原本字串為起點開始編碼,你可能會怕有人用反向工程將字串變回原本的密碼,這點你就不用擔心了,這編碼方式是『單向』的,無法用反向工程恢復...
j2me应用程序已经我在应用开发过程中,常常用到j2me的网络应用,但限于j2me无线设备的能力,我们不得不在可用性和性能之间作出选择,因此,我做了以下的试验,并由此总结出一点结论,以方便后来者不必再走弯路。我的应用主要功能是测试j2me设备的网络连接性能,因此,其他方面的测试概不涉及。我们知道,j2me的通用连接框架为我们提供了http/socket/数据报/本地文件/线外等连接方式,但由于具体设备实现不同而导致程序开发方面的不便。举例来说,j2me 的 midp 1.0版本中没有规定socket是必须的,但到了midp 2.0 socket才成为必须实现的协议。因此,现阶段大多数流行的设备都没有socket连接,这给我们编程带来了不利因素。在我们的测试程序中,socket测试采用了streamconnection类来建立连接,而走的是socket协议。分析一下程序即可知。本文涉及了多种...
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器