??xml version="1.0" encoding="utf-8" standalone="yes"?>91wwwcom在线观看,韩国av一区二区三区,日本不卡一二三http://www.aygfsteel.com/zpuser/zh-cnThu, 19 Jun 2025 20:41:46 GMTThu, 19 Jun 2025 20:41:46 GMT60Web Service理论QSOAPhttp://www.aygfsteel.com/zpuser/archive/2008/07/04/212593.htmlacoolyacoolyFri, 04 Jul 2008 09:23:00 GMThttp://www.aygfsteel.com/zpuser/archive/2008/07/04/212593.htmlhttp://www.aygfsteel.com/zpuser/comments/212593.htmlhttp://www.aygfsteel.com/zpuser/archive/2008/07/04/212593.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/212593.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/212593.html 什么是WebServcie

    |上有很多解释版本。我是技术研发,所以个人理解从技术角度说QWeb Service是一U轻量别的ZXML的跨q_q程服务通讯框架技术,可以很好解决各^台和语言间的数据通讯?br />
  • 语意协议Q用基于XML的SOAP协议Q定义业务数据格式?/li>
  • 传输协议Q用HTTP,TPC/IP,FTP,SMTP和JMS{,一般采用和支持较多的是HTTP?/li>
  • 接口描述语言Q用基于XML的WDSL作ؓl一服务描述?/li>
单的_WEBSERVICE是规定一pd的规范和框架Q提供一个基于SOAQ面向服务的架构Q概늚使用WSDL来描q服务接口定义的ҎQ可以用传l的传输协议Q一般用HTTPQ传输基于XML的SOAP格式报文数据来实现跨q_间系l的通讯。下面分别介lWEBSERVICE中必M解的几个部分QSOAP,WSDL和传输协?br />
SOAP


单对象访问协议(SOAPQSimple Object Access ProtocolQ是一U轻量的、简单的、基?XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。主要负责在WEBSERVICE服务中通讯报文数据格式的定义?SOAP 可以和现存的许多因特|协议和格式l合使用Q包括超文本传输协议Q? HTTPQ,单邮件传输协议(SMTPQ,多用途网际邮件扩充协议(MIMEQ,传统SOCKET通讯(TCP/IP),JAVA消息pȝ(JMS){传输协议。它q支持从消息pȝ到远E过E调用(RPCQ等大量的应用程序?br />
 SOAP 包括三个部分Q?
  • SOAP 装Q它定义了一个框Ӟ该框架描qC消息中的内容是什么,谁应当处理它以及它是可选的q是必须的?
  • SOAP ~码规则Q它定义了一U序列化的机Ӟ用于交换应用E序所定义的数据类型的实例?
  • SOAP RPC 表示Q它定义了用于表CE过E调用和应答的协定?/li>

   SOAP 消息基本上是从发送端到接收端的单向传输,但它们常常结合v来执行类gh / 应答的模式。所有的 SOAP 消息都?XML ~码。一?SOAP 消息是一个包含有一个必需?SOAP 的封装包Q一个可选的 SOAP 标头和一个必需?SOAP 体块?XML 文档?/p>

   ?SOAP l定?HTTP 提供了同时利?SOAP 的样式和分散的灵zL的特点以及 HTTP 的丰富的特征库的优点。在 HTTP 上传?SOAP q不是说 SOAP 会覆盖现有的 HTTP 语义Q而是 HTTP 上的 SOAP 语义会自然的映射?HTTP 语义。在使用 HTTP 作ؓ协议l定的场合中Q?RPC h映射?HTTP h上,?RPC 应答映射?HTTP 应答?b>单的说就是,通过HTTP POSTQ当然也可以GET或其它,一般是POSTQ方式传输一个SOAP协议定义的报文数据体Q用于双向通讯?/b>然而,?RPC 上? SOAP q不仅限?HTTP 协议l定Q也可以和其他的现行传输协议l定?/p>

语法规则

  • SOAP 消息必须?XML 来编?
  • SOAP 消息必须使用 SOAP Envelope 命名I间
  • SOAP 消息必须使用 SOAP Encoding 命名I间
  • SOAP 消息不能包含 DTD 引用
  • SOAP 消息不能包含 XML 处理指o

SOAP报文l构

一?SOAP 消息是一个普通的 XML 文档Q包含下列元素:

  • 必需?Envelope标签Q文档的ROOTQ可把此 XML 文档标识Z?SOAP 消息
    必需?SOAP ?Envelope 元素?SOAP 消息的根元素。它可把 XML 文档定义?SOAP 消息
  • 可选的 Header标签Q包含头部信?br />可选的 SOAP Header 元素可包含有?SOAP 消息的应用程序专用信息(比如认证、支付等Q。如?Header 元素被提供,则它必须? Envelope 元素的第一个子元素?br />
  • 必需?Body标签Q包含所有的调用和响应信?

    必需?SOAP Body 元素可包含打传送到消息最l端点的实际 SOAP 消息?/p>

    SOAP Body 元素的直接子元素可以是合格的命名I间。SOAP 在默认的命名I间?"http://www.w3.org/2001/12/soap-envelope")定义?Body 元素内部的一个元素。即 SOAP ? Fault 元素Q用于指C错误消息?/p>

  • 可选的 Fault 元素Q提供有兛_处理此消息所发生错误的信?br />

    来自 SOAP 消息的错误消息被携带?Fault 元素内部?/p>

    如果已提供了 Fault 元素Q则它必L Body 元素的子元素。在一?SOAP 消息中,Fault 元素只能出现一ơ?/p>

    SOAP ?Fault 元素用于下列子元素:

    子元?/th>描述
    <faultcode>供识别故障的代码
    <faultstring>可供人阅ȝ有关故障的说?/td>
    <faultactor>有关是谁引发故障的信?/td>
    <detail>存留涉及 Body 元素的应用程序专用错误信?/td>

SOAPh报文
<!-- 信封 -->
<
SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" //SOAP报文默认命名I间
                   xmlns:SOAP-ENC
="http://schemas.xmlsoap.org/soap/encoding/" //~码数据cd命名I间
                   xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"//文档XSD实例ҎQ规定格?/span>
                   xmlns:xsd="http://www.w3.org/2001/XMLSchema">         //文档XSDҎQ规定格?br />    <!-- 信头 -->
    <SOAP-ENV:HEADER></SOAP-ENV:HEADER>
    <!-- 信体 -->
    <
SOAP-ENV:Body>
        
<m:activateEpurse xmlns:m="http://service.payment.ipayment.justinmobile.com">
            
<m:appNo>String</m:appNo>
            
<m:mobileNo>String</m:mobileNo>
        
</m:activateEpurse>
    
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

SOAP应答报文Q返回一个entry数组Q也是MAPQ?br />
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    
<soap:Body>
        
<ns1:activateEpurseResponse xmlns:ns1="http://service.payment.ipayment.justinmobile.com">
            
<ns1:out>
                
<entry xmlns="http://service.payment.ipayment.justinmobile.com">
                    
<key>transStatus</key>
                    
<value>0001</value>
                
</entry>
            
</ns1:out>
        
</ns1:activateEpurseResponse>
    
</soap:Body>
</soap:Envelope>

所有以上的元素均被声明于针?SOAP 装的默认命名空间中Q?/p>

http://www.w3.org/2001/12/soap-envelope

SOAP 在默认的命名I间?("http://www.w3.org/2001/12/soap-envelope") 定义了三个属性。这三个属性是Qactor?mustUnderstand 以及 encodingStyle。这些被定义?SOAP 头部的属性可定义容器如何? SOAP 消息q行处理?/p>

actor

通过沿着消息路径l过不同的端点,SOAP 消息可从某个发送者传播到某个接收者。ƈ?SOAP 消息的所有部分均打算传送到 SOAP 消息的最l端点,不过Q另一个方面,也许打算传送给消息路径上的一个或多个端点?/p>

SOAP ?actor 属性可被用于将 Header 元素dC个特定的端点?/p>

soap:actor="URI"

mustUnderstand

SOAP ?mustUnderstand 属性可用于标识标题对于要对其q行处理的接收者来说是强制的还是可选的?/p>

假如您向 Header 元素的某个子元素d? "mustUnderstand="1"Q则它可指示处理此头部的接收者必认可此元素。假如此接收者无法认可此元素Q则在处理此头部时必d效?/p>

soap:mustUnderstand="0|1"

encodingStyle

SOAP ?encodingStyle 属性用于定义在文档中用的数据cd。此属性可出现在Q?SOAP 元素中,q会被应用到元素的内容及元素的所有子元素上。SOAP 消息没有默认的编码方式?/p>

soap:encodingStyle="


以及针对 SOAP ~码和数据类型的默认命名I间Q?/p>

http://www.w3.org/2001/12/soap-encoding









acooly 2008-07-04 17:23 发表评论
]]>
SVN-WINDOWS服务器架讑֒理http://www.aygfsteel.com/zpuser/archive/2008/06/08/206654.htmlacoolyacoolySun, 08 Jun 2008 04:40:00 GMThttp://www.aygfsteel.com/zpuser/archive/2008/06/08/206654.htmlhttp://www.aygfsteel.com/zpuser/comments/206654.htmlhttp://www.aygfsteel.com/zpuser/archive/2008/06/08/206654.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/206654.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/206654.html阅读全文

acooly 2008-06-08 12:40 发表评论
]]>
RSA非对U加密JAVAAPI实现http://www.aygfsteel.com/zpuser/archive/2008/05/27/203203.htmlacoolyacoolyTue, 27 May 2008 05:41:00 GMThttp://www.aygfsteel.com/zpuser/archive/2008/05/27/203203.htmlhttp://www.aygfsteel.com/zpuser/comments/203203.htmlhttp://www.aygfsteel.com/zpuser/archive/2008/05/27/203203.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/203203.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/203203.html 

 

package  org.acooly.studio.encrypt;

import  java.security.KeyPair;
import  java.security.KeyPairGenerator;
import  java.security.PrivateKey;
import  java.security.PublicKey;

import  javax.crypto.Cipher;

import  org.apache.commons.logging.Log;
import  org.apache.commons.logging.LogFactory;

/** *****************************************************************************
 * 非对U加密JAVA法演示(JAVA-SUN API实现)<br>
 * <b>法:RSA</b><br>
 * RSA法是第一个能同时用于加密和数字签名的法Q也易于理解和操作?br /> * RSA是被研究得最q泛的公钥算法,从提出到现在已近二十q_l历了各U攻ȝ考验Q逐渐Zh们接受,普遍认ؓ是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但ƈ没有从理Z证明破译RSA的难度与大数分解隑ֺ{h。即RSA的重大缺h无法从理Z把握它的保密性能如何Q而且密码学界多数人士們֐于因子分解不是NPC问题。RSA的缺点主要有QA)产生密钥很麻烦,受到素数产生技术的限制Q因而难以做Cơ一密。B)分组长度太大Qؓ保证安全性,n
 * 臛_也要 600
 * bits以上Qɘq算代h很高Q尤其是速度较慢Q较对称密码法慢几个数量Q且随着大数分解技术的发展Q这个长度还在增加,不利于数据格式的标准化。目前,SET(Secure
 * Electronic Transaction)协议中要求CA采用2048比特长的密钥Q其他实体?024比特的密钥?lt;br>
 * q种法1978q就出现了,它是W一个既能用于数据加密也能用于数字签名的法。它易于理解和操作,也很行。算法的名字以发明者的名字命名QRon
 * Rivest, AdiShamir 和Leonard Adleman。但RSA的安全性一直未能得到理Z的证明。?lt;br>
 * RSA的安全性依赖于大数分解。公钥和U钥都是两个大素敎ͼ 大于
 * 100个十q制位)的函数。据猜测Q从一个密钥和密文推断出明文的隑ֺ{同于分解两个大素数的积。?lt;br>
 * 密钥对的产生。选择两个大素敎ͼp 和q 。计: <br>
 * n = p * q <br>
 * 然后随机选择加密密钥eQ要求 e 和? p - 1 ) * ( q - 1 ) 互质。最后,利用Euclid 法计算解密密钥d, 满 <br>
 * e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) ) <br>
 * 其中n和d也要互质。数e和n是公钥,d是私钥。两个素数p和q不再需要,应该丢弃Q不要让M人知道。?lt;br>
 * 加密信息 mQ二q制表示Q时Q首先把m分成{长数据块 m1 ,m2,, mi Q块长sQ其中?^s <= n, s 可能的大。对应的密文是:
 * <br>
 * ci = mi^e ( mod n ) ( a ) <br>
 * 解密时作如下计算Q?lt;br>
 * mi = ci^d ( mod n ) ( b ) <br>
 * RSA 可用于数字签名,Ҏ是用 ( a ) 式签名, ( b )式验证。具体操作时考虑到安全性和 m信息量较大等因素Q一般是先作 HASH q算?br /> * <br>
 * RSA 的安全性。?lt;br>
 * RSA的安全性依赖于大数分解Q但是否{同于大数分解一直未能得到理Z的证明,因ؓ没有证明破解RSA׃定需要作大数分解。假讑֭在一U无d解大数的法Q那它肯定可以修Ҏ为大数分解算法。目前,
 * RSA的一些变U算法已被证明等价于大数分解。不怎样Q分解n是最昄的攻L法。现在,Z已能分解140多个十进制位的大素数。因此,模数n必须选大一些,因具体适用情况而定?br /> * <br>
 * RSA的速度。?lt;br>
 * ׃q行的都是大数计,使得RSA最快的情况也比DES慢上100倍,无论是Y件还是硬件实现。速度一直是RSA的缺陗一般来说只用于量数据加密。?lt;br>
 * RSA的选择密文d。?lt;br>
 * RSA在选择密文d面前很脆弱。一般攻击者是某一信息作一下伪?Blind)Q让拥有U钥的实体签|Ӏ然后,l过计算可得到它所惌的信息。实际上Q攻d用的都是同一个弱点,卛_在这样一个事实:乘幂保留了输入的乘法l构Q?br /> * <br> ( XM )^d = X^d *M^d mod n <br>
 * 前面已经提到Q这个固有的问题来自于公钥密码系l的最有用的特?-每个人都能用公钥。但从算法上无法解决q一问题Q主要措施有两条Q一条是采用好的公钥协议Q保证工作过E中实体不对其他实体L产生的信息解密,不对自己一无所知的信息{֐Q另一条是决不寚w生h送来的随机文档签名,{֐旉先用One-Way
 * Hash FunctionҎ档作HASH处理Q或同时使用不同的签名算法。在中提C几种不同cd的攻L法。?lt;br>
 * RSA的公共模数攻凅R?lt;br>
 * 若系l中共有一个模敎ͼ只是不同的h拥有不同的e和dQ系l将是危险的。最普遍的情冉|同一信息用不同的公钥加密Q这些公钥共模而且互质Q那末该信息无需U钥可得到恢复。设PZ息明文,两个加密密钥为e1和e2Q公共模数是nQ则Q?br /> * C1 = P^e1 mod n <br>
 * C2 = P^e2 mod n <br>
 * 密码分析者知道n、e1、e2、C1和C2Q就能得到P。?lt;br>
 * 因ؓe1和e2互质Q故用Euclidean法能找到r和sQ满I <br>
 * r * e1 + s * e2 = 1 <br>
 * 假设r敎ͼ需再用Euclidean法计算C1^(-1)Q则 <br> ( C1^(-1) )^(-r) * C2^s = P mod n <br>
 * 另外Q还有其它几U利用公共模数攻ȝҎ。MQ如果知道给定模数的一对e和dQ一是有利于d者分解模敎ͼ一是有利于d者计出其它成对的e’和d’,而无需分解模数。解军_法只有一个,那就是不要共享模数n?lt;br>
 * RSA的小指数d?br /> * 有一U提高RSA速度的徏议是使公钥e取较的|q样会加密变得易于实现Q速度有所提高。但q样作是不安全的Q对付办法就是e和d都取较大的倹{?lt;br>
 * 
 * 
@author  pu.zhang
 * 
 
*/

public   class  DisSymmetricEncryption  {

    
private  Log logger  =  LogFactory.getLog(DisSymmetricEncryption. class );

    
public   static   void  main(String[] args)  throws  Exception {
        DisSymmetricEncryption disSymmetricEncryption 
=   new  DisSymmetricEncryption();
        disSymmetricEncryption.RSAEncryption();
    }


    
/**
     * <b>RSA?解密JAVA-API演示</b><br>
     * 加密可以用公钥,解密用私钥;或者加密用U钥Q解密用公钥。 通常非对U加密是非常消耗资源的Q因此可以对大数据用对称加密如:
     * DES?DESQ而对其对U密钥进行非对称加密Q这h保证了数据的安全Q还能保证效率?br />     
*/

    
void  RSAEncryption()  throws  Exception  {
        String algorithm 
=   " RSA " ;
        logger.info(
" algorithm: " + algorithm);
        
// 明文
         byte [] plainText  =   0 1 2 3 4 5 6 7 8 9  } ;
        logger.info(
" plainText: " + formatedHexString(plainText));
        
        
//  生成KeyPaire
        KeyPairGenerator keyPairGenerator  =  KeyPairGenerator.getInstance( " RSA " );
        keyPairGenerator.initialize(
1024 );
        KeyPair keyPair 
=  keyPairGenerator.genKeyPair();

        
//  公钥
        PublicKey publickKey  =  keyPair.getPublic();
        logger.info(
" PublicKey: " + formatedHexString(publickKey.getEncoded()));
        
//  U钥
        PrivateKey privateKey  =  keyPair.getPrivate();
        logger.info(
" PrivateKey: " + formatedHexString(privateKey.getEncoded()));
        
        Cipher cipher 
=  Cipher.getInstance( " RSA " );
        
//  公钥加密
        cipher.init(Cipher.ENCRYPT_MODE, publickKey);
        
byte [] publicKeyEncryptText  =  cipher.doFinal(plainText);
        logger.info(
" publicKeyEncryptText: " + formatedHexString(publicKeyEncryptText));
        
// U钥解密
        cipher.init(Cipher.DECRYPT_MODE, privateKey);
        
byte [] privateKeyDecryptText  =  cipher.doFinal(publicKeyEncryptText);
        logger.info(
" privateKeyDecryptText: " + formatedHexString(privateKeyDecryptText));
        
        
// U钥加密
        cipher.init(Cipher.ENCRYPT_MODE, privateKey);
        
byte [] privateKeyEncryptText  =  cipher.doFinal(plainText);
        logger.info(
" privateKeyEncryptText: " + formatedHexString(privateKeyEncryptText));    
        
// 公钥解密
        cipher.init(Cipher.DECRYPT_MODE, publickKey);
        
byte [] publicKeyDecryptText  =  cipher.doFinal(privateKeyEncryptText);
        logger.info(
" publicKeyDecryptText: " + formatedHexString(publicKeyDecryptText));        
        
        
    }


    
/**
     * 转换byte数组?6q制的字W串昄方式
     * 
@param  b
     * 
@return
     
*/

    String formatedHexString(
byte [] b)  {
        String hs 
=   "" ;
        String stmp 
=   "" ;

        
for  ( int  n  =   0 ; n  <  b.length; n ++ {
            stmp 
=  (java.lang.Integer.toHexString(b[n]  &   0XFF ));
            
if  (stmp.length()  ==   1 )
                hs 
=  hs  +   " 0 "   +  stmp;
            
else
                hs 
=  hs  +  stmp;
            
if  (n  <  b.length  -   1 )
                hs 
=  hs  +   "   " ;
        }

        
return  hs.toUpperCase();
    }

    
}



acooly 2008-05-27 13:41 发表评论
]]>
windows下自动启动svn的svnserved脚本http://www.aygfsteel.com/zpuser/archive/2008/05/25/202671.htmlacoolyacoolySat, 24 May 2008 17:34:00 GMThttp://www.aygfsteel.com/zpuser/archive/2008/05/25/202671.htmlhttp://www.aygfsteel.com/zpuser/comments/202671.htmlhttp://www.aygfsteel.com/zpuser/archive/2008/05/25/202671.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/202671.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/202671.html set  WshShell  =  WScript.CreateObject( " WScript.Shell " )
WshShell.run 
" svnserve -d -r h:/repository " , 0 , true
把上面脚本保存ؓ:auto_run_svnserve.vbsQ然后加入到启动里面或是注册表run里面Q系l启动的时候就自动启动?span style="COLOR: #000000">svnserve服务。注意:U色部分Z的仓库的物理地址?/font>


acooly 2008-05-25 01:34 发表评论
]]>
Ҏ加密JAVA-API实现http://www.aygfsteel.com/zpuser/archive/2008/05/23/202513.htmlacoolyacoolyFri, 23 May 2008 15:21:00 GMThttp://www.aygfsteel.com/zpuser/archive/2008/05/23/202513.htmlhttp://www.aygfsteel.com/zpuser/comments/202513.htmlhttp://www.aygfsteel.com/zpuser/archive/2008/05/23/202513.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/202513.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/202513.html
  1 package org.acooly.studio.encrypt;
  2 
  3 import java.security.Key;
  4 
  5 import javax.crypto.Cipher;
  6 import javax.crypto.KeyGenerator;
  7 import javax.crypto.SecretKey;
  8 import javax.crypto.spec.IvParameterSpec;
  9 import javax.crypto.spec.SecretKeySpec;
 10 
 11 import org.apache.commons.logging.Log;
 12 import org.apache.commons.logging.LogFactory;
 13 
 14 /**
 15  * 对称加密JAVA法演示(JAVA-SUN API实现)
 16  * 
 17  * 
 18  * @author pu.zhang
 19  * 
 20  */
 21 public class SymmetricEncryption {
 22 
 23     private Log logger = LogFactory.getLog(SymmetricEncryption.class);
 24 
 25     public static void main(String[] args) throws Exception {
 26 
 27         SymmetricEncryption symmetricEncryption = new SymmetricEncryption();
 28 
 29         // DES
 30         symmetricEncryption.DESEncryption();
 31         // 3DES
 32         symmetricEncryption.tripleDESEncryption();
 33 
 34     }
 35 
 36     /**
 37      * DES?解密演示
 38      * 
 39      * @throws Exception
 40      */
 41     void DESEncryption() throws Exception {
 42 
 43         // 明文
 44         byte[] plainText = "I am plain text!".getBytes();
 45 
 46         logger.info("明文:" + formatedHexString(plainText));
 47         // 通过KeyGenerator形成一个key
 48         KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");
 49         Key key = keyGenerator.generateKey();
 50         logger.info("KEY:" + formatedHexString(key.getEncoded()));
 51 
 52         // 获得一个私钥加密类CipherQCBC是加密方式,PKCS5Padding是填充方?br /> 53         // CBC加密方式Q把明文分ؓ左右两部分LP和RP
 54         String transformation = "DES/CBC/PKCS5Padding"// algorithm/mode/padding
 55         Cipher cipher = Cipher.getInstance(transformation);
 56 
 57         // CBC方式的初始化向量
 58         byte[] iv = "iamaniv.".getBytes();
 59         IvParameterSpec ivparam = new IvParameterSpec(iv);
 60         // 加密
 61         cipher.init(Cipher.ENCRYPT_MODE, key, ivparam);
 62         byte[] cipherText = cipher.doFinal(plainText);
 63         logger.info("加密后密?" + formatedHexString(cipherText));
 64 
 65         // 解密
 66 
 67         cipher.init(Cipher.DECRYPT_MODE, key, ivparam);
 68         byte[] newPlainText = cipher.doFinal(cipherText);
 69         logger.info("解密后明?" + formatedHexString(newPlainText));
 70     }
 71 
 72     /**
 73      * DES?解密演示
 74      * 
 75      * @throws Exception
 76      */
 77     void tripleDESEncryption() throws Exception {
 78         // 24字节密钥key,3倍DES密钥长度
 79         byte[] tripleKey = "123456789012345678901234".getBytes();
 80         logger.info("tripleKey:" + formatedHexString(tripleKey));
 81         // 明文
 82         byte[] plainText = "I am plain text!".getBytes();
 83         logger.info("初始的明?" + formatedHexString(plainText));
 84 
 85         // 法
 86         String algorithm = "DESede";
 87 
 88         // 生成密钥
 89         SecretKey secretKey = new SecretKeySpec(tripleKey, algorithm);
 90 
 91         String transformation = "DESede/CBC/PKCS5Padding";
 92         Cipher cipher = Cipher.getInstance(transformation);
 93         // CBC方式的初始化向量
 94         byte[] iv = "iamaniv.".getBytes();
 95         IvParameterSpec ivparam = new IvParameterSpec(iv);
 96 
 97         // 加密
 98         cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivparam);
 99         byte[] encriptText = cipher.doFinal(plainText);
100         logger.info("加密的密?" + formatedHexString(encriptText));
101 
102         // 解密?/span>
103         cipher.init(Cipher.DECRYPT_MODE, secretKey, ivparam);
104         byte[] newPlainText = cipher.doFinal(encriptText);
105         logger.info("解密的明?" + formatedHexString(newPlainText));
106     }
107 
108     
109     /**
110      * 转换byte数组?6q制的字W串昄方式
111      * @param b
112      * @return
113      */
114     String formatedHexString(byte[] b) {
115         String hs = "";
116         String stmp = "";
117 
118         for (int n = 0; n < b.length; n++) {
119             stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
120             if (stmp.length() == 1)
121                 hs = hs + "0" + stmp;
122             else
123                 hs = hs + stmp;
124             if (n < b.length - 1)
125                 hs = hs + " ";
126         }
127         return hs.toUpperCase();
128     }
129 
130 }
131 



acooly 2008-05-23 23:21 发表评论
]]>
对称加密和非对称加密http://www.aygfsteel.com/zpuser/archive/2008/05/21/201957.htmlacoolyacoolyWed, 21 May 2008 08:42:00 GMThttp://www.aygfsteel.com/zpuser/archive/2008/05/21/201957.htmlhttp://www.aygfsteel.com/zpuser/comments/201957.htmlhttp://www.aygfsteel.com/zpuser/archive/2008/05/21/201957.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/201957.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/201957.html对称加密法
JAVA-API部分法实现

对称加密法 对称加密法是应用较早的加密法Q技术成熟。在对称加密法中,数据发信方将明文Q原始数据)和加密密钥一Lq特D加密算法处理后Q其变成复杂的加密密文发送出厅R收信方收到密文后,若想解读原文Q则需要用加密用q的密钥及相同算法的逆算法对密文q行解密Q才能其恢复成可读明文。在对称加密法中,使用的密钥只有一个,发收信双斚w使用q个密钥Ҏ据进行加密和解密Q这p求解密方事先必须知道加密密钥。对U加密算法的特点是算法公开、计量、加密速度快、加密效率高。不之处是Q交易双斚w使用同样钥匙Q安全性得不到保证。此外,每对用户每次使用对称加密法Ӟ都需要用其他h不知道的惟一钥匙Q这会得发收信双方所拥有的钥匙数量成几何U数增长Q密钥管理成为用L负担。对U加密算法在分布式网l系l上使用较ؓ困难Q主要是因ؓ密钥理困难Q用成本较高。在计算Z|系l中q泛使用的对U加密算法有DES和IDEA{。美国国家标准局倡导的AES卛_作ؓ新标准取代DES?/p>

DES

数据加密法QData Encryption AlgorithmQDEAQ的数据加密标准QData Encryption StandardQDESQ是规范的描qͼ它出?IBM 的研I工作,q在 1997 q被国政府正式采纳。它很可能是使用最q泛的秘钥系l,特别是在保护金融数据的安全中Q最初开发的 DES 是嵌入硬件中的。通常Q自动取ƾ机QAutomated Teller MachineQATMQ都使用 DES?br />DES 使用一?56 位的密钥以及附加?8 位奇偶校验位Q生最?64 位的分组大小。这是一个P代的分组密码Q用称?Feistel 的技术,其中加密的文本块分成两半。用子密钥对其中一半应用@环功能,然后输Z另一半进行“异或”运;接着交换q两半,q一q程会l下去,但最后一个@环不交换。DES 使用 16 个@环?br />d DES 的主要Ş式被UCؓ蛮力的或d密钥搜烦Q即重复试各种密钥直到有一个符合ؓ止。如?DES 使用 56 位的密钥Q则可能的密钥数量是 2 ?56 ơ方个。随着计算机系l能力的不断发展QDES 的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是够的。不q?QDES 现在仅用于旧pȝ的鉴定,而更多地选择新的加密标准 ?高加密标准QAdvanced Encryption StandardQAESQ?
DES 的常见变体是三重 DESQ?168 位的密钥对资料进行三ơ加密的一U机Ӟ它通常Q但非始l)提供极其强大的安全性。如果三?56 位的子元素都相同Q则三重 DES 向后兼容 DES?br />IBM 曑֯ DES 拥有几年的专利权Q但是在 1983 q已到期Qƈ且处于公有范围中Q允许在特定条g下可以免除专利用费而用?br />׃DES是加(??4位明(?文,即ؓ8个字?8*8=64)Q可以据此初步判断这是分l加密,加密的过E中会有16ơ@环与密钥|换q程Q据此可以判断有可能是用到DES密码法Q更_的判断还得必L得一点DES的加密过E?

3DES

3DES是DES加密法的一U模式,它??4位的密钥Ҏ据进行三ơ加密。数据加密标准(DESQ是国的一U由来已久的加密标准Q它使用对称密钥加密法,q于1981q被ANSIl织规范为ANSI X.3.92。DES使用56位密钥和密码块的ҎQ而在密码块的Ҏ中,文本被分?4位大的文本块然后再q行加密。比h初的DESQ?DES更ؓ安全?br />3DESQ即Triple DESQ是DES向AESq渡的加密算法(1999q_NIST?-DES指定渡的加密标准Q,是DES的一个更安全的变形。它以DES为基本模块,通过l合分组Ҏ设计出分l加密算法,其具体实现如下:设Ek()和Dk()代表DES法的加密和解密q程QK代表DES法使用的密钥,P代表明文QC代表密表Q这P
3DES加密q程为:C=Ek3(Dk2(Ek1(P)))
3DES解密q程为:P=Dk1((EK2(Dk3(C)))


AES——对U密码新标准

对称密码体制的发展趋势将以分l密码ؓ重点。分l密码算法通常?a target="_blank">密钥扩展法和加密(解密Q算法两部分l成。密钥扩展算法将b字节用户d钥扩展成r个子密钥。加密算法由一个密码学上的弱函数f与r个子密钥q代rơ组成。؜乱和密钥扩散是分l密码算法设计的基本原则。抵御已知明文的差分和线性攻击,可变长密钥和分组是该体制的设计要炏V ?br />
AES是美国国家标准技术研I所NIST旨在取代DES?1世纪的加密标准。? 

AES的基本要求是Q采用对U分l密码体Ӟ密钥长度的最支持ؓ128?92?56Q分l长?28位,法应易于各U硬件和软g实现?998q?NIST开始AESW一轮分析、测试和征集Q共产生?5个候选算法?999q?月完成了W二轮AES2的分析、测试。预计在2000q?月AES的最l结果将公布。? 
   
在应用方面,管DES在安全上是脆qQ但׃快速DES芯片的大量生产,使得DES仍能暂时l箋使用Qؓ提高安全强度Q通常使用独立密钥的三UDES。但是DESq早要被AES代替。流密码体制较之分组密码在理Z成熟且安全,但未被列入下一代加密标准。 ?


非对U加密算?/h2>

asymmetric encoding algorithm
非对U加密算法需要两个密钥:公开密钥QpublickeyQ和U有密钥QprivatekeyQ。公开密钥与私有密钥是一对,如果用公开密钥Ҏ据进行加密,只有用对应的U有密钥才能解密Q如果用U有密钥Ҏ据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这U算法叫作非对称加密法?非对U加密算法实现机密信息交换的基本q程是:甲方生成一对密钥ƈ其中的一把作为公用密钥向其它方公开Q得到该公用密钥的乙方用该密钥Ҏ密信息进行加密后再发送给甲方Q甲方再用自׃存的另一把专用密钥对加密后的信息q行解密。甲方只能用其专用密钥解密由其公用密钥加密后的Q何信息?非对U加密算法的保密性比较好Q它消除了最l用户交换密钥的需要?br />
RSA法演示


对称和非对称加密法案例

Z多密钥理体系中的对称密钥传输保护Ҏ
甌?专利P 200610147335
一U基于在多密钥理体系中的对称密钥传输保护ҎQ其步骤为:
Q.传入方签发ƈ通过两条途径传递两张密钥传输卡Q每张卡中存有一D传入方的根公钥Q?br />Q.传出方从两张卡获得传入方的根公钥Qƈ随机生成传输密钥Q再用该根公钥加密后分段写入C张卡中,其工作密钥用传输密钥传出q写入两张卡中通过两条途径递送给传入方;
Q.传入斚w证卡的合法性;从两张卡中获得传输密钥和工作密钥密文q用根私钥解密传输密钥写入加密机传输密钥区;传入方将工作密钥密文通过传输密钥写入工作密钥区,从而完成了两台密钥理加密Z间的密钥传递过E。本发明采用证书方式Q加Z对称密钥传输时的安全性,采用QE卡作Z质,保证了传输介质的安全?/div>

甌日:2006q?2?5?/td>
公开日:2007q?6?6?/td>
授权公告日:
甌?专利权hQ?/td>上v格尔软g股䆾有限公司
甌人地址Q?/td>上v市闸北区余姚?88号A??/td>
发明设计人:张翔;杨茂?李澜?/td>
专利代理机构Q?/td>
代理人:陈学?/td>
专利cdQ?/td>发明专利
分类PH04L9/32;H04L9/14;H04L9/12;H04L9/08;H04L9/30


acooly 2008-05-21 16:42 发表评论
]]>开发小l验汇?/title><link>http://www.aygfsteel.com/zpuser/archive/2007/09/17/121209.html</link><dc:creator>acooly</dc:creator><author>acooly</author><pubDate>Mon, 17 Sep 2007 03:30:00 GMT</pubDate><guid>http://www.aygfsteel.com/zpuser/archive/2007/09/17/121209.html</guid><wfw:comment>http://www.aygfsteel.com/zpuser/comments/121209.html</wfw:comment><comments>http://www.aygfsteel.com/zpuser/archive/2007/09/17/121209.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/zpuser/comments/commentRss/121209.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/zpuser/services/trackbacks/121209.html</trackback:ping><description><![CDATA[1.<b>回R转换?/b>Qonkeypress="if(event.keyCode == 13){//do script!}<br />2.<b>Tomcat-linux环境囑Ş昄问题Q?/b>JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"<br /><b>3.Eclipse启动参数</b>QD:\eclipse3.2\eclipse.exe  -data D:\workspace -product com.genuitec.myeclipse.product.ide -vmargs -Duser.language=en -Xms128M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M<br /><b>4.eclipse生成javadocq解决</b>Q加入参数?encoding UTF-8 -charset UTF-8?br /><b>5.jsp面止~存代码</b>Q?br />    response.setHeader("Pragma","No-cache"); <br />    response.setHeader("Cache-Control","no-cache"); <br />    response.setDateHeader("Expires", 0); <br /><br /><b>6.linuxQmount samba</b><br />   mount -t smbfs -o codepage=cp936 q程路径 本地路径 <br /><br /><b>7.查看端口对应PID</b><br /> lsof -i tcp:PORT-NO, eg, lsof -i tcp:80<br /> lsof -i udp:PORT-NO, eg, lsof -i udp:53<br /><br /><b>8.RH5.0下smbmount的代替方?/b><br />mount -t cifs //ip/f /location/dir ...<br /><br /><img src ="http://www.aygfsteel.com/zpuser/aggbug/121209.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zpuser/" target="_blank">acooly</a> 2007-09-17 11:30 <a href="http://www.aygfsteel.com/zpuser/archive/2007/09/17/121209.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE 用/启用外键和触发器http://www.aygfsteel.com/zpuser/archive/2007/08/31/141647.htmlacoolyacoolyFri, 31 Aug 2007 02:45:00 GMThttp://www.aygfsteel.com/zpuser/archive/2007/08/31/141647.htmlhttp://www.aygfsteel.com/zpuser/comments/141647.htmlhttp://www.aygfsteel.com/zpuser/archive/2007/08/31/141647.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/141647.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/141647.html

acooly 2007-08-31 10:45 发表评论
]]>
Z角色的访问控制RBAChttp://www.aygfsteel.com/zpuser/archive/2007/07/04/128062.htmlacoolyacoolyWed, 04 Jul 2007 04:10:00 GMThttp://www.aygfsteel.com/zpuser/archive/2007/07/04/128062.htmlhttp://www.aygfsteel.com/zpuser/comments/128062.htmlhttp://www.aygfsteel.com/zpuser/archive/2007/07/04/128062.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/128062.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/128062.html
  最q,随着电子商务和电子政务的发展Q网l安全已成ؓ研发的重点和热点。信息的完整性、机密性、n份鉴别和不可否认性构成了信息安全的四? 素。非对称加密法从理论和实践上都可以保证w䆾的有效性和不可否认性,而要保证软gpȝ、数据库和信息网l的完整性、和机密性,至今q没有一个行之有? 的解x案。如公司资源的讹误,信息的未授权泄漏或者失H,以及被非法篡攚w是因为没有保证信息的机密性和完整性而引L。它们不仅破坏了l织的操作,q? 有可能涉及到金融Q法律,人员安全Q个人隐U和国家机密斚wQ而造成重大的损失?

  当今最著名的美国计机安全标准是可信计机pȝ评估标准QTCSECQ。其中一个内容就是要L未被授权而浏览机密信息。TCSEC规定? 两个讉K控制cdQ自主访问控ӞDACQ和强制讉K控制QMACQ。DAC是指M可以自主地将讉K权限或者访问权限的某个子集授予其他M。主要是? 些用P特定客体的用hh指定Ҏ的用P规定别的用户能以怎样的方式访问客体。它主要满商业和政府的安全需要,以及单军事应用。但是由于它的控 制是自主的,所以也可能会因为权限的传递而泄漏信息。另外,如果合法用户可以Lq行一个程序来修改他拥有的文g存取控制信息Q而操作系l无法区分这U修 Ҏ用户自己的操作,q是恶意E序的非法操作,解决办法是通过强加一些不可逾越的访问限制。因此,又提Z一U更强有力的讉K控制手段Q即强制讉K控制 QMACQ,但是它主要用于多U安全军事应用,很少用于其他斚w。现今h们在MAC基础上提出基于角色的讉K控制QRBACQ,它是一U强制访问控制Ş 式,但它不是Z多安全需求。其{略是根据用户在l织内部的角色制定的。用户不能Q意的访问权限传递给其他用户。这是RBAC和DAC之间最基本的不 同?

  Z角色讉K控制QRBACQ模型是目前国际上流行的先进的安全访问控制方法。它通过分配和取消角色来完成用户权限的授予和取消Qƈ且提供角 色分配规则。安全管理h员根据需要定义各U角Ԍq设|合适的讉K权限Q而用h据其责Q和资历再被指zؓ不同的角艌Ӏ这P整个讉K控制q程分成两? 部分Q即讉K权限与角色相兌Q角色再与用户关联,从而实C用户与访问权限的逻辑分离?

  ׃实现了用户与讉K权限的逻辑分离Q基于角色的{略极大的方便了权限理。例如,如果一个用L职位发生变化Q只要将用户当前的角色去掉, 加入代表新职务或CQ务的角色卛_。研I表明,角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,q且l用户分配角色不需要很多技术,可以? 行政理人员来执行,而给角色配置权限的工作比较复杂,需要一定的技术,可以׃门的技术h员来承担Q但是不l他们给用户分配角色的权限,q与现实中的? 冉|好一致?

  Z角色讉K控制可以很好的描q角色层ơ关p,实现最特权原则和职责分离原则?

  2.RBAC的正式定?

  Z角色讉K控制QRBACQ的定义已经在第十五届国际计机安全会议上以集合的Ş式给出。定义如下:

  对于每一MQ激z角色是当前使用的主体:

  ARQsQsubjectQ?{Ms的激z角色}

  每一M可被授权扮演一个或更多角色Q?

  RAQsQsubjectQ?{Ms的授权角色}

  每一角色可被授权执行一个或更多事务Q?

  TAQrQroleQ?{授权l角色r的事务}

  M可以执行事务。如果主体s可以在当前时间执行事务tQ则预测execQsQtQ是真,否则为假Q?

  exec(s: subject, t: tran) =true, 如果Ms可以执行事务t?

  执行q程中的三个基本规则Q?

  2.1 角色分配Q仅当主体选择或被赋予一个角ԌM才能执行一个事务?

   

  w䆾证明和鉴别过E(例如dQ不是一个事务。其他用L所有在pȝ上的zd都可通过事务处理。因此要求所有激zȝ户具有某个激z角艌Ӏ?

  2.2 角色授权Q主体的Ȁz角色必L被授权的Q?br />同上面的Q?Q一P规则保证用户只能接收他们授予的角艌Ӏ?

  2.3 事务授权Q仅当事务被授权l主体激z角色时Q主体才能执行该事务?

   

  同(1Q和Q?Q一P本规则保证用户只可执行授权给他们的事务。注意,因ؓ条g是“仅当(only ifQ”,本规则允怺务执行的出现附加限制的可能性。即Q规则不保证一个事务只是因为它在TA(AR(s))中就是可执行的,TA(AR(s))是由? 体激z角色执行的潜在事务集合。例如,一个主角色的实习生可被赋予“主”角Ԍ但是在运用他/她用戯色时有限Ӟ卛_一ȝ可正常访问的子集Q实? 生可能受到限制?

  上文中,“事务”的定义是变换过E(transformation procedureQ加上一个由变换q程讉K的数据项集。因为数据访问已被构建到事务中,所以上面规则的讉K控制不要求对用户讉K数据目标的权利或变换E? 序访问数据项的权利作M查。由于在设计阶段操作和数据l定Z个事务,所以存在安全性问题,例如此时的在保险查询事务中提出的个h隐私的问题?

  当规则中“事务”只指变换程序时Q需要重新定义“事务”的含义Q即不包括对目标的绑定。若要实施方式控制则需要第四个规则Q即在模型中用户? q事务程序访问目标。例如,利用事务Q重新定义ؓ变换E序Q,W四个规则可被定义ؓ对象讉K函数access(r, I, o, x)Q?

  

  它表明了是否允许角色r的主体利用事务t以x的方式来讉K对象oQ其中x是已l羃的模式的集合。例如读Q写Q附加?

  W四规则可适用于医院配|。一位医生可被提供读/写药方的讉K控制Q而医院的药剂师可能只hȝ讉K权力。(单独调用前三个规则,事务过Et与t能访问的数据对象l定在一块,q且只控制对事务的访问)。我们可以用第四个规则替换Q更有益于满x密性的要求?

  RBAC的另一个用途是支持完整性。完整性以几种不同的方式定义,但完整性的一个方面是要求数据和程序只能由授权用户以被授权的方式修攏V这看v来对于很多真实的pȝ是一合理的安全目标,同时RBAC应适用于这Lpȝ?

  一般来_军_数据是否只以授权的方式修改的问题与修改事务是同样复杂的。由于这个原因,实际的方法是事务直接与另一事务合ƈ。要求系l通过 规则Q?Q中的访问函数控制事务程序对对象的访问,但是要取得完整性的同时需要极大的pȝ开销。因此,在RBAC中包含事务对对象的访问控制函数将在一? 应用集中是有用的Q但q不是所有的应用?

  3.最特权策?

  最特权原则对于满_整性目标是非常重要的。最特权原则要求用户只h执行一工作所必需的权限。要保证最特权要求验证用L工作是什 么,要确定执行该工作所要求的权限最集合,q制用L权限域。若拒绝了不是主体职责的事务Q则那些被拒l的权限׃能绕q阻止安全性策略。尽最? Ҏ包含当前存在于TCSEC的内容当中,但仍限制pȝ理员的权限。通过使用RBACQ很Ҏ满一般系l的用户执行最权限?

  4.职责分离

  RBAC机制可被pȝ理员用于执行职责分ȝ{略。职责分d于反行ؓ是非常有效的。它是在真实pȝ中最重要的想法?

  职责分离或者是静态的Q或者是动态的。符合静态职责分要求职能由个h角色的分配和事务角色的分配决定的。最隄是动态职责分配,其中W合动态职责分ȝ职能在系l操作期间决定。动态职责分ȝ的是允许操作更灵zR?

  Ҏ角色分配讉K权利在定义职责分M也是有帮助的Q它ql执行?

  5.l论

  虽然商业和政府组l中很多l端用户能够讉K信息Q但他们都不“拥有”信息。而这些组l机构恰恰是实际pȝ对象的“拥有者”,q且自主讉K控制是不可能适合的。基于角色访问控ӞRBACQ是一个非自主讉K控制机制Q它允许促进l织具体安全{略的中央管理?br />讉K控制决策通常Z角色Q个人用户采取的角色作ؓl织的组成。一个角色规定了一个事务集合,即用h用户集合可在l织内执行。RBAC提供命名和描qC人和权利之间的关pȝҎQ提供很多商业和政府l织需要的安全处理Ҏ?

  本文提到的基于角色访问控ӞRBACQ的定义Q已l在W十五届国际计算机安全会议上以集合的形式l出。本文的目的是让更多热爱|络安全的朋友了解RBACQɘq一新型的访问控制方案得到更多的应用?



acooly 2007-07-04 12:10 发表评论
]]>
NFChttp://www.aygfsteel.com/zpuser/archive/2007/06/28/126942.htmlacoolyacoolyThu, 28 Jun 2007 15:31:00 GMThttp://www.aygfsteel.com/zpuser/archive/2007/06/28/126942.htmlhttp://www.aygfsteel.com/zpuser/comments/126942.htmlhttp://www.aygfsteel.com/zpuser/archive/2007/06/28/126942.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/126942.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/126942.htmlNFC(Near Field Communication, q距通讯技?是脱胎于无线讑֤间的一U“非接触式射频识别?RFID)及互联技术,为所有消Ҏ电子品提供了一个极Z利的通讯方式?/div>
 
1 Q技术优?/b>
NFC在单一芯片上结合了感应式读卡器Q感应式卡片和点对点的功能。在数厘cI通常?5厘米以内Q距M间于13.56MHz频率范围内运 作,通过频信号自动识别目标对象q获取相x据,识别工作无须人工q预QQ意两个设备(如移动电话、蓝牙设备、Diui设备)接近而不需要线~接插,? 可以实现怺间的通信Q可以满Q何两个无U设备间的信息交换、内容访问、服务交换。此外,拥有 NFC 功能的消费电子装|可以轻易地交换或储存个料,其中包括各种讯息、照片、MP3{。ؓ消费者实C用简ѝ免安装讑֮、现场立卌机、智能型门控{功 能,完全W合C消费者的需求?/div>
 
2 Q应用类?/b>
NFC 应用可区分ؓ四个基本cdQ?/div>
Touch and Go
q类应用像门禁制或R及门票{,使用者只需携带储存着证或门控代码的装置靠近d装置卛_Q它q可做ؓ易的数据撷取应用Q例如从h上的型标{接读取网址?
 
Touch and Confirm
q类应用主要늛行动付费机制Q通常使用者必输入密码,以确认交易行为,有时则只要直接进行交易即可?
 
Touch and Connect
两个内?NFC 的装|相q接Q以q行点对Ҏ据传输,例如下蝲音乐、交换媄像与同步处理通讯等?
 
Touch and Explore
NFC 装置所提供的功能极Z富,消费者可以自行探索,扑և NFC 装置潜在的功能与服务?
 
全球消费电子巨头索尼和飞利公司、联合全球最大的手机厂商诺基亚,制定了该无线技术的标准Q?家公司在2004q年初已l开始把NFC技术集 成到Ud电话、数码相机、小型数码摄像机、电视机和汽车导航系l等讑֤中,目前已经在ISO 18092和ISO 21481、ECMA(340,352?56)、ETSI TS 102 190内进行标准化。另外,NFC同时兼容于以ISO 14443A为基的感应式卡基架构Q如飞利的MIFARE技术,索尼(Sony)的FeliCa卡?/div>
 
3 Q发展前?/b>
QuQ具有成本低廉、方便易用和更富直观性等特点Q这让它在某些领域显得更h力——NQE通过一个芯片、一根天U和一些Y件的l合Q能够实? 各种讑֤在几厘米范围内的通信Q而费用仅为2~3Ƨ元。据QQ? QԌsearch有关QuQ有最新研IӞQuQ市场可能发q于Ud手持讑֤。AQテ估计Q到Q0Q5q以后,市场会出现采用NQE芯片的智能手机和增强? 手持讑֤。到Q0Q9q_q种手持讑֤占一半以上的市场。如果NQE技术能得到普及Q它在很大E度上改变h们用许多电子设备的方式Q甚x变用信 用卡、钥匙和现金的方式?/div>
 
NFC作ؓ一U新兴的技术,大致ȝ了蓝牙技术协同工作能力差的弊病。不q,它的目标q是完全取代蓝牙、Wi-Fi{其他无U技术,而是在不 同的场合、不同的领域起到怺补充的作用。因为NFC的数据传输速率较低Q仅?12KbpsQ不适合诸如韌频流{需要较高带宽的应用?
 
需要密切关注的是,中国政府正在制定自己的RFID标准Q而飞利的NFC技术是否完全兼容ƈ得到中国政府的认可对消费者相当重要。中国国家标 准化理委员会成立了国家标准工作l,负责赯、制定中国有关RFID的国家标准,据称q样中国获得相关的自ȝ识权,又能RFID发展U_标准 化、规范化的轨道。整个认证过E很可能需要飞利{公司公开一些关键的技术,q可能成为NFC在中国推q应用的l脚矟?


acooly 2007-06-28 23:31 发表评论
]]>linux下CVS服务器简单解x?/title><link>http://www.aygfsteel.com/zpuser/archive/2007/06/12/123678.html</link><dc:creator>acooly</dc:creator><author>acooly</author><pubDate>Tue, 12 Jun 2007 10:02:00 GMT</pubDate><guid>http://www.aygfsteel.com/zpuser/archive/2007/06/12/123678.html</guid><wfw:comment>http://www.aygfsteel.com/zpuser/comments/123678.html</wfw:comment><comments>http://www.aygfsteel.com/zpuser/archive/2007/06/12/123678.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/zpuser/comments/commentRss/123678.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/zpuser/services/trackbacks/123678.html</trackback:ping><description><![CDATA[ <br /> <b>1、安装配|?/b> <br />RH linux AS 4下默认安装有CVS服务器?br /><br /><font size="2"><b>建立CVSl和用户</b></font><br /><font size="2"># groupadd cvs<br /><br />创徏默认的管理̎?br /># useradd -g cvs -G cvsroot<br /># passwd cvsroot<br /><br />创徏普通操作用?br /># useradd -g cvs -s sbin/nologin -M cvsuser<br /># passwd cvsuser<br /><br /><br /><b>建立仓库</b><br /># cd /usr<br /># mkdir cvsroot<br /># chown -R cvsroot:cvs /usr/cvsro<br /><br />加入:export CVSROOT=/usr/cvsroot?etc/profile<br /><br /><b>配置自动启动</b><br />?/etc/xinetd.d 目录下创Z个文Ӟ随便命名Q比?cvs </font><p><font size="2">vi /etc/xinetd.d/cvs</font></p><p><font size="2">在其中添?/font></p><p><font size="2">service cvspserver</font></p><p><font size="2">{</font></p><p><font size="2">socket_type = stream</font></p><p><font size="2">wait = no</font></p><p><font size="2">user = root</font></p><p><font size="2">env = HOME=</font></p><p><font size="2">server = /usr/bin/cvs</font></p><p><font size="2">server-tags = --allow-root=/home/cvsroot pserver</font></p><p><font size="2">}</font></p><font size="2"><b>重启 xinetd</b></font><font size="2"><br />/etc/init.d/xinetd restart</font><br /><br /><font size="2"><b>初始化和加入仓库</b><br />cvs init /usr/cvsroot</font><font size="2"><br />q样CVS可以用?/font><br /><p><font size="2">d仓库: q入C的源码目?/font></p><p><font size="2">cd /your/sources/path</font></p><p><font size="2">然后执行</font></p><p><font size="2">cvs export SOURCE_DIR_NAME Author Version</font></p><p><font size="2">其中的SOURCE_DIR_NAME 是你的工程?CVSROOT 目录中保存的目录? Author 为工E作者, Version Z的工E发行版本号Q必M字母开?/font></p><img src ="http://www.aygfsteel.com/zpuser/aggbug/123678.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zpuser/" target="_blank">acooly</a> 2007-06-12 18:02 <a href="http://www.aygfsteel.com/zpuser/archive/2007/06/12/123678.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Apache与Tomcatq_全面解决Ҏhttp://www.aygfsteel.com/zpuser/archive/2007/04/29/114555.htmlacoolyacoolySun, 29 Apr 2007 05:39:00 GMThttp://www.aygfsteel.com/zpuser/archive/2007/04/29/114555.htmlhttp://www.aygfsteel.com/zpuser/comments/114555.htmlhttp://www.aygfsteel.com/zpuser/archive/2007/04/29/114555.html#Feedback1http://www.aygfsteel.com/zpuser/comments/commentRss/114555.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/114555.html阅读全文

acooly 2007-04-29 13:39 发表评论
]]>
Apache安装配置与优?/title><link>http://www.aygfsteel.com/zpuser/archive/2007/04/29/114548.html</link><dc:creator>acooly</dc:creator><author>acooly</author><pubDate>Sun, 29 Apr 2007 05:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/zpuser/archive/2007/04/29/114548.html</guid><wfw:comment>http://www.aygfsteel.com/zpuser/comments/114548.html</wfw:comment><comments>http://www.aygfsteel.com/zpuser/archive/2007/04/29/114548.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/zpuser/comments/commentRss/114548.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/zpuser/services/trackbacks/114548.html</trackback:ping><description><![CDATA[ <span lang="EN-US">本文</span>针对apache  web服务器的安装配置攉有效的一些经验和ҎQ用于交?span style="font-family: 宋体;"></span><h3 style="margin-left: 36pt; text-indent: -36pt;"><span style="" lang="EN-US"><span style="">1.</span></span><!--[endif]--><span lang="EN-US">Apache</span><span style="font-family: 宋体;">安装配置</span></h3><p class="MsoNormal"><span lang="EN-US">Apache</span><span style="font-family: 宋体;">的安装,考虑只用?/span><span lang="EN-US">Tomcat</span><span style="font-family: 宋体;">的前D代理,处理囄和静态文件的hQƈ把动态请求{发到</span><span lang="EN-US">tomcat</span><span style="font-family: 宋体;">服务处理。本文用编译安装方式,把跟需求无关的模块关闭Q只使用最的模块~译Q提高Y件性能?/span></p><p class="MsoNormal"><span style="font-family: 宋体;">配置~译命o请参考:</span></p><p class="MsoNormal"><span lang="EN-US"><a >http://www.uplinux.com/download/doc/apache/ApacheManual/install.html#configure</a></span></p><p class="MsoNormal"><span style="font-family: 宋体;">~译参数说明Q?/span></p><p class="MsoNormal"><span style="font-family: 宋体;">~译和包含是两个不同的概c编译是指这个模块被~译了,要想使用它,只用单的修改</span><span lang="EN-US">httpd.conf</span><span style="font-family: 宋体;">加上</span><span lang="EN-US">LoadModule xxx_module<span style="">  </span>libexec/mod_xxx.so </span><span style="font-family: 宋体;">明确指出?/span></p><p class="MsoNormal"><span style="font-family: 宋体;">用以前命令可以查看缺省时已编译和包含q去的模块。不用显式的</span><span lang="EN-US">--enable-MODULE[=shared] </span><span style="font-family: 宋体;">?/span><span lang="EN-US">LoadModule </span><span style="font-family: 宋体;">操作。就已经可以使用的?/span></p><ol><li><span lang="EN-US">core.c</span><span style="font-family: 宋体;">Q?/span><span lang="EN-US">Apache HTTP </span><span style="font-family: 宋体;">服务器提供的核心功能。必要有的?/span></li><li><span lang="EN-US">mod_access.c</span><span style="font-family: 宋体;">Q安全认证大大降低访问速度Q徏?/span><span lang="EN-US">disable it .</span></li><li><span lang="EN-US"><span style=""></span>mod_auth.c </span><span style="font-family: 宋体;">Q安全认证大大降低访问速度Q徏?/span><span lang="EN-US">disable it .</span></li><li><span lang="EN-US"><span style=""></span>mod_include.c</span><span style="font-family: 宋体;">Q?/span><span lang="EN-US">server side include</span><span style="font-family: 宋体;">已经q时了,</span><span lang="EN-US">disable it .</span></li><li><span lang="EN-US"><span style=""></span>mod_log_config.c</span><span style="font-family: 宋体;">Q用于定?/span><span lang="EN-US">log</span><span style="font-family: 宋体;">格式</span><span lang="EN-US">.</span><span style="font-family: 宋体;">最好保?/span><span lang="EN-US">.</span></li><li><span lang="EN-US"><span style=""></span>mod_env.c</span><span style="font-family: 宋体;">Q修改传送到</span><span lang="EN-US"> CGI </span><span style="font-family: 宋体;">脚本?/span><span lang="EN-US"> SSI </span><span style="font-family: 宋体;">面的系l环境(变量Q。一般说来,可以不需要?/span></li><li><span lang="EN-US"><span style=""></span>mod_setenvif.c </span><span style="font-family: 宋体;">Q用戯|环境变量和认证相关Q如果没有用压~输出,</span><span lang="EN-US">disable it .</span></li><li><span lang="EN-US"><span style=""></span>prefork.c</span><span style="font-family: 宋体;">Q?/span><span lang="EN-US">Implements a non-threaded, pre-forking web server</span><span style="font-family: 宋体;">。参考下面的</span><span lang="EN-US">mpm</span><span style="font-family: 宋体;">介绍?/span></li><li><span lang="EN-US"><span style=""></span>http_core.c</span><span style="font-family: 宋体;">Q?/span><span lang="EN-US">Apache HTTP </span><span style="font-family: 宋体;">服务器提供的核心功能。必要有的?/span></li><li><span lang="EN-US"><span style=""></span>mod_mime.c</span><span style="font-family: 宋体;">Q用于增加文件应用的兌。最好保留?/span></li><li><span lang="EN-US"><span style=""></span>mod_status.c</span><span style="font-family: 宋体;">Q?/span><span lang="EN-US">Provides information on server activity and performance </span><span style="font-family: 宋体;">。一般说来,可以不需要?/span></li><li><span lang="EN-US"><span style=""></span>mod_autoindex.c</span><span style="font-family: 宋体;">Q不需要将没有~省</span><span lang="EN-US">index</span><span style="font-family: 宋体;">文g的目录下所有文件列出,</span><span lang="EN-US">disable it .</span></li><li><span lang="EN-US"><span style=""></span>mod_asis.c</span><span style="font-family: 宋体;">Q尽量不使用</span><span lang="EN-US">CGI</span><span style="font-family: 宋体;">Q一直是</span><span lang="EN-US">Apache</span><span style="font-family: 宋体;">安全问题最多的地方Q徏?/span><span lang="EN-US">disable it .</span></li><li><span lang="EN-US"><span style=""></span>mod_cgi.c</span><span style="font-family: 宋体;">Q尽量不使用</span><span lang="EN-US">CGI</span><span style="font-family: 宋体;">Q一直是</span><span lang="EN-US">Apache</span><span style="font-family: 宋体;">安全问题最多的地方Q徏?/span><span lang="EN-US">disable it .</span></li><li><span lang="EN-US"><span style=""></span>mod_negotiation.c </span><span style="font-family: 宋体;">Q内容协商,</span><span style="font-family: 宋体;">以根据浏览器提供的设|选择不同媒介cd、语a、字W集和编码的最佌玎ͼ</span><span style="font-family: 宋体;">q有Ҏ自浏览器的不完整内容协商信息作智能处理的能力。一般说来,可以不需要?/span></li><li><span lang="EN-US"><span style=""></span>mod_dir.c</span><span style="font-family: 宋体;">Q用于缺?/span><span lang="EN-US">index</span><span style="font-family: 宋体;">文gQ?/span><span lang="EN-US">index.php</span><span style="font-family: 宋体;">{。我们现在的应用不需要这个。看情况而定?/span></li><li><span lang="EN-US"><span style=""></span>mod_imap.c</span><span style="font-family: 宋体;">Q尽量不使用</span><span lang="EN-US">CGI</span><span style="font-family: 宋体;">Q一直是</span><span lang="EN-US">Apache</span><span style="font-family: 宋体;">安全问题最多的地方Q徏?/span><span lang="EN-US">disable it .</span></li><li><span lang="EN-US"><span style=""></span>mod_actions.c</span><span style="font-family: 宋体;">Q尽量不使用</span><span lang="EN-US">CGI</span><span style="font-family: 宋体;">Q一直是</span><span lang="EN-US">Apache</span><span style="font-family: 宋体;">安全问题最多的地方Q徏?/span><span lang="EN-US">disable it </span></li><li><span lang="EN-US"><span style=""></span>mod_userdir.c</span><span style="font-family: 宋体;">Q比如:需要在</span><span lang="EN-US">~/username/</span><span style="font-family: 宋体;">下调?/span><span lang="EN-US">php.</span><span style="font-family: 宋体;">可用可不?/span><span lang="EN-US">.</span><span style="font-family: 宋体;"></span><span lang="EN-US">disable it .</span></li><li><span lang="EN-US"><span style=""></span>mod_alias.c</span><span style="font-family: 宋体;">Q比如:需要将以前?/span><span lang="EN-US">URL</span><span style="font-family: 宋体;">q行转向或者需要?/span><span lang="EN-US">CGI script-alias.</span><span style="font-family: 宋体;"></span><span lang="EN-US">disable it .</span></li><li><span lang="EN-US"><span style=""></span>mod_so.c </span><span style="font-family: 宋体;">Q如果编译中包含有Q何动态模块,?/span><span lang="EN-US">mod_so</span><span style="font-family: 宋体;">模块会被自动包含q核心。如果希望核心能够装?/span><span lang="EN-US">DSO</span><span style="font-family: 宋体;">Q而不实际~译M动态模块,需要明指?/span><span lang="EN-US">--enable-so</span><span style="font-family: 宋体;">。我们的应用使用静态编译,不需要它。徏?/span><span lang="EN-US">disable it .</span></li><li><span lang="EN-US">CC="pgcc" CFLAGS="-O2" </span><span style="font-family: 宋体;">Q编译器参数优化</span></li><li><span lang="EN-US">--profix</span><span style="font-family: 宋体;">Q?/span><span lang="EN-US">apache</span><span style="font-family: 宋体;">的安装目录,默认是安装在</span><span lang="EN-US">/usr/local/apache<o:p></o:p></span></li></ol><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">$ cd </span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">tools<br />$ tar –xzvf apache</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">2.0</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">59</span><span style="color: rgb(0, 0, 0);">.tar.gz<br />$ cd httpd2.</span><span style="color: rgb(0, 0, 0);">0.59</span><span style="color: rgb(0, 0, 0);"><br />$ CC</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">pgcc</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> CFLAGS</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">-O2</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> \<br />.</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">configure </span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">prefix</span><span style="color: rgb(0, 0, 0);">=/</span><span style="color: rgb(0, 0, 0);">usr</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">apache</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">2.0</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">59</span><span style="color: rgb(0, 0, 0);"> \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">disable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">access \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">disable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">auth \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">disable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">include \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">disable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">env \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">disable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">status \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">disable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">autoindex \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">disable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">asis \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">disable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">cgi \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">disable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">negotiation \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">disable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">imap \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">disable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">actions \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">disable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">userdir \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">disable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">alias \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">enable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">deflate \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">enable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">headers \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">enable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">setenvif \<br /></span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">enable</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">so<br />$ make<br />$ make install</span></div><p class="MsoNormal"><span style="font-family: 宋体;">安装完成后,因ؓ~译关闭了很多默认的功能模块Q所以直接用发布的默认配置是不能启动服务器的,需要作调整?/span></p><p class="MsoNormal"><span style="font-family: 宋体;">?/span><span lang="EN-US">apache</span><span style="font-family: 宋体;">的安装目录ؓ</span><span lang="EN-US">$APACHE_HOME</span></p><p class="MsoNormal"><span style="font-family: 宋体;">备䆾默认配置文g</span><span lang="EN-US">$APACHE_HOME/conf/httpd.conf</span><span style="font-family: 宋体;">Q然后?/span><span lang="EN-US">highperformance.conf</span><span style="font-family: 宋体;">最为配|文?/span></p><p class="MsoNormal"><span lang="EN-US"><o:p> </o:p><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">$ cd $APACHE_HOME</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">conf</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);"><br />$ mv httpd.conf httpd.conf_bak<br />$ cp highperformance.conf httpd.conf<br />$ ..</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">bin</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">apachectr start</span></div></span></p><p class="MsoNormal"><span style="font-family: 宋体;">如果启动p|Q请屏蔽?/span><span lang="EN-US">httpd.conf</span><span style="font-family: 宋体;">中的</span><span lang="EN-US">mod_access</span><span style="font-family: 宋体;">相关命oQ如</span><span lang="EN-US">Order</span><span style="font-family: 宋体;">{,关于目录权限的控制在本例中可以用变通方式解冻I使用没有加蝲目录权限控制功能?/span></p><p class="MsoNormal"><span style="font-family: 宋体;">启动验证Q访?/span><span lang="EN-US"><a href="http://$ip/">http://$IP/</a></span><span style="font-family: 宋体;">Q如果正常显C页面,表示成功?/span></p><h3 style="margin-left: 36pt; text-indent: -36pt;"><!--[if !supportLists]--><span style="" lang="EN-US"><span style="">2.</span></span><!--[endif]--><span lang="EN-US">PMP</span></h3><p class="MsoNormal"><span lang="EN-US">MPM</span><span style="font-family: 宋体;">Q?/span><span lang="EN-US">Multi-Processing Modules</span><span style="font-family: 宋体;">Q多道处理模块)</span></p><p class="MsoNormal"><span style="font-family: 宋体;">指定</span><span lang="EN-US">MPM</span><span style="font-family: 宋体;">的方?/span><span lang="EN-US"></span></p><p class="MsoNormal"><span lang="EN-US">$ ./configure --help|grep mpm</span></p><p class="MsoNormal"><span style="font-family: 宋体;">昄如下Q?/span><span lang="EN-US"></span></p><p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; color: rgb(255, 102, 0);" lang="EN-US">--with-mpm=MPM </span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; color: rgb(255, 102, 0);" lang="EN-US">Choose the process model for Apache to use. </span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; color: rgb(255, 102, 0);" lang="EN-US">MPM={beos|worker|prefork|mpmt_os2| perchild|leader|threadpool}</span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: 宋体;">主要阐述</span><span lang="EN-US">prefork</span><span style="font-family: 宋体;">Q如果不用?/span><span lang="EN-US">--with-mpm</span><span style="font-family: 宋体;">”显式指定某U?/span><span lang="EN-US">MPM</span><span style="font-family: 宋体;">Q?/span><span lang="EN-US">prefork</span><span style="font-family: 宋体;">是</span><span lang="EN-US">Unix</span><span style="font-family: 宋体;">q_上缺省的</span><span lang="EN-US">MPM</span><span style="font-family: 宋体;">Q?/span><span lang="EN-US">prefork</span><span style="font-family: 宋体;">本nq没有用到U程Q?/span><span lang="EN-US">2.0</span><span style="font-family: 宋体;">版用它是ؓ了与</span><span lang="EN-US">1.3</span><span style="font-family: 宋体;">版保持兼Ҏ;</span><span lang="EN-US">prefork</span><span style="font-family: 宋体;">用单独的子进E来处理不同的请求,q程之间是彼此独立的Q这也其成为最E_?/span><span lang="EN-US">MPM</span><span style="font-family: 宋体;">之一?/span></p><p class="MsoNormal"><span lang="EN-US">prefork</span><span style="font-family: 宋体;">的工作原理是Q控制进E在最初徏立?/span><span lang="EN-US">StartServers</span><span style="font-family: 宋体;">”个子进E后Qؓ了满?/span><span lang="EN-US">MinSpareServers</span><span style="font-family: 宋体;">讄的需要创Z个进E,{待一U钟Ql创Z个,再等待一U钟Ql创建四个……如此按指数U增加创建的q程敎ͼ最多达到每U?/span><span lang="EN-US">32</span><span style="font-family: 宋体;">个,直到满</span><span lang="EN-US">MinSpareServers</span><span style="font-family: 宋体;">讄的gؓ止。这是预派生(</span><span lang="EN-US">prefork</span><span style="font-family: 宋体;">Q的由来。这U模式可以不必在h到来时再产生新的q程Q从而减了pȝ开销以增加性能?/span></p><p class="MsoNormal"><span style="font-family: 宋体;">下面?/span><span lang="EN-US">prefork</span><span style="font-family: 宋体;">的默认配|段Q?/span></p><p class="MsoNormal"><span lang="EN-US"><IfModule prefork.c></span></p><p class="MsoNormal" style="margin-left: 10.5pt;"><span lang="EN-US">StartServers<span style="">         </span>5<span style="">  </span></span></p><p class="MsoNormal" style="margin-left: 10.5pt;"><span lang="EN-US">MinSpareServers<span style="">      </span>5<span style="">  </span></span></p><p class="MsoNormal" style="margin-left: 10.5pt;"><span lang="EN-US">MaxSpareServers<span style="">     </span>10<span style="">  </span></span></p><p class="MsoNormal" style="margin-left: 10.5pt;"><span lang="EN-US">MaxClients<span style="">         </span>150<span style="">  </span></span></p><p class="MsoNormal" style="margin-left: 10.5pt;"><span lang="EN-US">MaxRequestsPerChild<span style="">  </span>0 </span></p><p class="MsoNormal"><span lang="EN-US"></IfModule></span></p><p class="MsoNormal"><b style=""><span lang="EN-US">MinSpareServers<o:p></o:p></span></b></p><p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">讄了最的I闲q程数?/span></p><p class="MsoNormal"><b style=""><span lang="EN-US">MaxSpareServers<o:p></o:p></span></b></p><p class="MsoNormal" style="text-indent: 21pt;"><span style="font-family: 宋体;">讄了最大的I闲q程敎ͼ如果I闲q程数大于这个|</span><span lang="EN-US">Apache</span><span style="font-family: 宋体;">会自?/span><span lang="EN-US">kill</span><span style="font-family: 宋体;">掉一些多余进E。这个g要设得过大,但如果设的值比</span><span lang="EN-US">MinSpareServers</span><span style="font-family: 宋体;">,</span><span lang="EN-US">Apache</span><span style="font-family: 宋体;">会自动把其调整ؓ</span><span lang="EN-US">MinSpareServers+1</span><span style="font-family: 宋体;">。如果站点负载较大,可考虑同时加大</span><span lang="EN-US">MinSpareServers</span><span style="font-family: 宋体;">?/span><span lang="EN-US">MaxSpareServers</span><span style="font-family: 宋体;">?/span></p><p class="MsoNormal"><b style=""><span lang="EN-US">MaxClients<o:p></o:p></span></b></p><p class="MsoNormal" style="text-indent: 21pt;"><span lang="EN-US">MaxClients</span><span style="font-family: 宋体;">是这些指令中最为重要的一个,讑֮的是</span><span lang="EN-US">Apache</span><span style="font-family: 宋体;">可以同时处理的请求,是对</span><span lang="EN-US">Apache</span><span style="font-family: 宋体;">性能影响最大的参数。其~省?/span><span lang="EN-US">150</span><span style="font-family: 宋体;">是远q不够的Q如果请求L已达到这个|可通过</span><span lang="EN-US">ps -ef|grep http|wc -l</span><span style="font-family: 宋体;">来确认)Q那么后面的hp排队Q直到某个已处理h完毕。这是pȝ资源q剩下很多?/span><span lang="EN-US">HTTP</span><span style="font-family: 宋体;">讉K却很慢的主要原因。系l管理员可以Ҏg配置和负载情冉|动态调整这个倹{虽然理Zq个D大,可以处理的请求就多Q但</span><span lang="EN-US">Apache</span><span style="font-family: 宋体;">默认的限制不能大?/span><span lang="EN-US">256</span><span style="font-family: 宋体;">Q在</span><span lang="EN-US">2.0</span><span style="font-family: 宋体;">中源?/span><span lang="EN-US">#define DEFAULT_SERVER_LIMIT 256</span><span style="font-family: 宋体;">Q。如果把q个D为大?/span><span lang="EN-US">256</span><span style="font-family: 宋体;">Q那?/span><span lang="EN-US">Apache</span><span style="font-family: 宋体;">无法v动。事实上Q?/span><span lang="EN-US">256</span><span style="font-family: 宋体;">对于负蝲E重的站点也是不够的。在</span><span lang="EN-US">Apache 1.3</span><span style="font-family: 宋体;">中,q是个硬限制。如果要加大q个|必须在?/span><span lang="EN-US">configure</span><span style="font-family: 宋体;">”前手工修改的源代码树下?/span><span lang="EN-US">src/include/httpd.h</span><span style="font-family: 宋体;">中查?/span><span lang="EN-US">256</span><span style="font-family: 宋体;">Q就会发现?/span><span lang="EN-US">#define HARD_SERVER_LIMIT <st1:chmetcnv unitname="? sourcevalue="256" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">256<span style="font-family: 宋体;" lang="EN-US"><span lang="EN-US">?/span></span></st1:chmetcnv><span style="font-family: 宋体;" lang="EN-US">q行。把</span>256</span><span style="font-family: 宋体;">改ؓ要增大的|?/span><span lang="EN-US">4000</span><span style="font-family: 宋体;">Q,然后重新~译</span><span lang="EN-US">Apache</span><span style="font-family: 宋体;">卛_。在</span><span lang="EN-US">Apache 2.0</span><span style="font-family: 宋体;">中新加入?/span><span lang="EN-US">ServerLimit</span><span style="font-family: 宋体;">指oQ得无重~译</span><span lang="EN-US">Apache</span><span style="font-family: 宋体;">可以加?/span><span lang="EN-US">MaxClients</span><span style="font-family: 宋体;">?/span><span lang="EN-US">ServerLimit</span><span style="font-family: 宋体;">使用也是单独d一行在q就可以了。如?/span><span lang="EN-US">ServerLimit</span><span style="font-family: 宋体;">的值再q定义超q了</span><span lang="EN-US">20000</span><span style="font-family: 宋体;">Q就要修?/span><span lang="EN-US">server/mpm/prefork/prefork.c<span style="">  </span>#define MAX_SERVER_LIMIT 20000</span><span style="font-family: 宋体;">。将</span><span lang="EN-US">20000</span><span style="font-family: 宋体;">Ҏ更大的倹{?/span></p><p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><p class="MsoNormal"><b style=""><span lang="EN-US">MaxRequestsPerChild<o:p></o:p></span></b></p><p class="MsoNormal" style="text-indent: 18pt;"><span style="font-family: 宋体;">讄的是每个子进E可处理的请求数。每个子q程在处理了?/span><span lang="EN-US">MaxRequestsPerChild</span><span style="font-family: 宋体;">”个h后将自动销毁?/span><span lang="EN-US">0</span><span style="font-family: 宋体;">意味着无限Q即子进E永不销毁。虽然缺省设?/span><span lang="EN-US">0</span><span style="font-family: 宋体;">可以使每个子q程处理更多的请求,但如果设成非零g有两炚w要的好处Q可防止意外的内存泄漏;在服务器负蝲下降的时侯会自动减少子进E数?/span></p><p class="MsoNormal" style="text-indent: 18pt;"><span lang="EN-US"><o:p> </o:p></span></p><p class="MsoNormal" style="text-indent: 18pt;"><span lang="EN-US">Apache+jk2</span><span style="font-family: 宋体;">的每个进E的的大是</span><st1:chmetcnv unitname="m" sourcevalue="2" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on"><span lang="EN-US">2M</span></st1:chmetcnv><span style="font-family: 宋体;">Q本pȝ预计分配l?/span><span lang="EN-US">apache</span><span style="font-family: 宋体;">的内存ؓ</span><st1:chmetcnv unitname="m" sourcevalue="400" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on"><span lang="EN-US">400M</span></st1:chmetcnv><span style="font-family: 宋体;">Q那么根据公式:</span></p><p class="MsoNormal" style="margin-left: 18pt;"><span lang="EN-US">apache_max_process_with_good_perfermance < (<st1:chmetcnv unitname="m" sourcevalue="400" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">400M</st1:chmetcnv> / <st1:chmetcnv unitname="m" sourcevalue="2" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on">2m</st1:chmetcnv>) * 2 = 400<br /> apache_max_process </span><span style="font-family: 宋体;">Q?/span><span lang="EN-US">400 * 1.5 = 700</span></p><p class="MsoNormal"><span style="font-family: 宋体;">xx能讄?/span><span lang="EN-US">:400</span></p><p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><p class="MsoNormal"><span style="font-family: 宋体;">按照上面的分析,本系l的?/span><span lang="EN-US">prefork.c</span><span style="font-family: 宋体;">配置为:</span></p><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);"><</span><span style="color: rgb(0, 0, 0);">IfModule prefork.c</span><span style="color: rgb(0, 0, 0);">></span><span style="color: rgb(0, 0, 0);"><br /><br />ServerLimit      </span><span style="color: rgb(0, 0, 0);">400</span><span style="color: rgb(0, 0, 0);"><br /><br />MaxClients       </span><span style="color: rgb(0, 0, 0);">400</span><span style="color: rgb(0, 0, 0);"><br /><br />StartServers     </span><span style="color: rgb(0, 0, 0);">5</span><span style="color: rgb(0, 0, 0);"><br /><br />MinSpareServers  </span><span style="color: rgb(0, 0, 0);">5</span><span style="color: rgb(0, 0, 0);"><br /><br />MaxSpareServers </span><span style="color: rgb(0, 0, 0);">10</span><span style="color: rgb(0, 0, 0);"><br /><br /></span><span style="color: rgb(0, 0, 0);"></</span><span style="color: rgb(0, 0, 0);">IfModule</span><span style="color: rgb(0, 0, 0);">></span></div><h3 style="margin-left: 36pt; text-indent: -36pt;"><!--[if !supportLists]--><span style="" lang="EN-US"><span style="">3.</span></span><!--[endif]--><span lang="EN-US">gzip</span><span style="font-family: 宋体;">压羃输出</span></h3><p class="MsoNormal"><span style="font-family: 宋体;">通过加入</span><span lang="EN-US">mode_deflate</span><span style="font-family: 宋体;">模块Ҏ务器输出压羃传输Q可以减输出压力,节约带宽?/span></p><p class="MsoNormal"><span style="font-family: 宋体; color: rgb(255, 102, 0);">可以减少</span><span style="color: rgb(255, 102, 0);" lang="EN-US">40%</span><span style="font-family: 宋体; color: rgb(255, 102, 0);">左右的流量,减少机器用于传输的负?/span><span style="color: rgb(255, 102, 0);" lang="EN-US">.<o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: 宋体;">压羃输出的配|需要以下三个模块功能支?/span></p><p class="MsoNormal"><span lang="EN-US">mod_setenvif.c</span></p><p class="MsoNormal"><span lang="EN-US">mod_deflate </span></p><p class="MsoNormal"><span lang="EN-US">mod_headers</span></p><p class="MsoNormal"><span style="font-family: 宋体;">具体说明请参考:</span><span lang="EN-US"><a >http://www.uplinux.com/download/doc/apache/ApacheManual/mod/</a></span></p><p class="MsoNormal"><b style=""><span style="font-family: 宋体;">配置</span><span lang="EN-US"><o:p></o:p></span></b></p><p class="MsoNormal"><span style="font-family: 宋体;">参考:</span><span lang="EN-US"><a >http://www.uplinux.com/download/doc/apache/ApacheManual/mod/mod_deflate.html</a></span></p><p class="MsoNormal"><span lang="EN-US"><o:p> </o:p><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 0);">AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript text/css<br /><br /># Compress everything except images<br /><br /></span><span style="color: rgb(0, 0, 255);"><</span><span style="color: rgb(128, 0, 0);">Location </span><span style="color: rgb(0, 0, 255);">/></span><span style="color: rgb(0, 0, 0);"><br /><br /># Insert filter<br /><br />SetOutputFilter DEFLATE<br /><br /># Netscape 4.x has some problems<img src="http://www.aygfsteel.com/images/dot.gif" /><br /><br />BrowserMatch ^Mozilla/4 gzip-only-text/html<br /><br /># Netscape 4.06-4.08 have some more problems<br /><br />BrowserMatch ^Mozilla/4\.0[678] no-gzip<br /><br /># MSIE masquerades as Netscape, but it is fine<br /><br />BrowserMatch \bMSIE !no-gzip !gzip-only-text/html<br /><br /># Don't compress images<br /><br />SetEnvIfNoCase Request_URI \<br /><br />\.(?:gif|jpe?g|png)$ no-gzip dont-vary<br /><br /># Make sure proxies don't deliver the wrong content<br /><br />Header append Vary User-Agent env=!dont-vary<br /><br /></span><span style="color: rgb(0, 0, 255);"></</span><span style="color: rgb(128, 0, 0);">Location</span><span style="color: rgb(0, 0, 255);">></span></div></span></p><p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><img src ="http://www.aygfsteel.com/zpuser/aggbug/114548.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zpuser/" target="_blank">acooly</a> 2007-04-29 13:19 <a href="http://www.aygfsteel.com/zpuser/archive/2007/04/29/114548.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TOMCAT-5.5.X优化配置http://www.aygfsteel.com/zpuser/archive/2007/04/29/114543.htmlacoolyacoolySun, 29 Apr 2007 05:08:00 GMThttp://www.aygfsteel.com/zpuser/archive/2007/04/29/114543.htmlhttp://www.aygfsteel.com/zpuser/comments/114543.htmlhttp://www.aygfsteel.com/zpuser/archive/2007/04/29/114543.html#Feedback2http://www.aygfsteel.com/zpuser/comments/commentRss/114543.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/114543.html

1._Tomcat和配|文?/span>

 

1Q删除不需要的理应用和帮助应用,提高tomcat安全性?/span>

# 删除webapps下所有文?/span>

# rm –fr $CATALINA_HOME/webapps/*

# 删除server/wenapps下所有文?/span>

# rm –fr $CATALINA_HOME/server/webapps/*

 

2Q精sever.xml配置文g

使用tomcat发布版本中的最配|文Ӟ提高性能Q如果有功能上的需求,在逐个的加入功能配|?/span>

# 备䆾原来?/span>server.xml?/span>server.xml_bak

# mv server.xml server.xml_bak

# 复制server-minimal.xml?/span>server.xml

# cp server-minimal.xml server.xml

2.q接器优?/span>

?/span>$CATALINA_HOME/conf/server.xml配置文g中的Connetctor节点Q和q接数相关的参数配置和优化?/span>

 

maxThreads

Tomcat使用U程来处理接收的每个h。这个DC?/span>Tomcat可创建的最大的U程数。默认?/span>200?/span> 可以Ҏ机器的时期性能和内存大调_一般可以在400-500。最大可以在800左右?/span>

acceptCount

  指定当所有可以用的处理h的线E数都被使用Ӟ可以攑ֈ处理队列中的h敎ͼ过q个数的h不予处理。默认?/span>10?/span> 

minSpareThreads
Tomcat初始化时创徏的线E数。默认?/span>4?/span> 

 

maxSpareThreads
一旦创建的U程过q个|Tomcat׃关闭不再需要的socketU程。默认?/span>50?/span> 

enableLookups 

是否反查域名Q默认gؓtrue。ؓ了提高处理能力,应设|ؓfalse 

connnectionTimeout

|络q接时Q默认?/span>20000Q单位:毫秒。设|ؓ0表示怸时Q这栯|有隐患的。通常可设|ؓ30000毫秒?/span>(本系l由于与后台pȝ接口时旉较长Q用设|ؓ60000) 

maxKeepAliveRequests 

保持h数量Q默认?/span>100?/span> 

bufferSize
输入缓冲大,默认?/span>2048 bytes?/span> 


compression

压羃传输Q取?/span>on/off/forceQ默认?/span>off?/span>

 

 

 其中和最大连接数相关的参CؓmaxThreads?/span>acceptCount。如果要加大q发q接敎ͼ应同时加大这两个参数?/span>web server允许的最大连接数q受制于操作pȝ的内核参数设|,通常Windows?/span>2000个左叻ILinux?/span>1000个左叟?/span>

 

 

 

Tomcat中如何禁止和允许列目录下的文?/span> 

?/span>$CATALINA_HOME/conf/web.xml中,?/span>listings参数讄?/span>false卛_Q如下: 


    listings
    false

    ...

 

具体操作

 

# vi $CATALINA_HOME/conf/server.xml

修改用于AJP的连接:

<Connector port="8009" protocol="AJP/1.3" />

为:

    <Connector port="8009"

               maxTreads="500" minSpareThreads="10" maxSpareThreads="50"

               acceptCount="50" connectionTimeout="60000"

               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

 

修改通用q接Q?/span>

<Connector port="8080" />

为:

    <Connector port="8080"

               maxTreads="500" minSpareThreads="10" maxSpareThreads="50"

               acceptCount="50" connectionTimeout="60000"

               enableLookups="false" redirectPort="8443" protocol="AJP/1.3"

           compression="on"

           compressionMinSize="2048"

           noCompressionUserAgents="gozilla, traviata"

           compressableMimeType="text/html,text/xml"/>

 

修改L和应用配|:

<Host name="localhost" appBase="webapps" />

为:

     <Host name="localhost" appBase=" "

       unpackWARs="true" autoDeploy="true"

       xmlValidation="false" xmlNamespaceAware="false">

        <Context path="" docBase="/www/xxxx/site/web" reloadable="true" debug="0"/>

      </Host>

3.优化JDK

Tomcat默认可以使用的内存ؓ128MB,Windows?/span>,在文?/span>{tomcat_home}/bin/catalina.batQ?/span>Unix下,在文?/span>$CATALINA_HOME/bin/catalina.sh的前面,增加如下讄Q?/span> 

JAVA_OPTS='$JAVA_OPTS -Xms[初始化内存大?/span>] -Xmx[可以使用的最大内?/span>
?/span>

讄环境变量Q?/span>export JAVA_OPTS=?JAVA_OPTS -Xms[初始化内存大?/span>] -Xmx[可以使用的最大内?/span>]?/span>

一般说来,你应该用物理内存的 80% 作ؓ堆大。如果本Z?/span>Apache服务器,可以先折?/span>Apache需要的内存Q然后修改堆大小。徏议设|ؓ70Q;讄[[初始化内存大?/span>]{于[可以使用的最大内?/span>]Q这样可以减^凡分配堆而降低性能?/span>

 

本例使用加入环境变量的方式:

# vi /etc/profile

加入Q?/span>export JAVA_OPTS=?JAVA_OPTS -Xms700 –Xmx700

# source /etc/profile

 

4.APR整合

请参见:TOMCAT-5.5.X整合APR

 




acooly 2007-04-29 13:08 发表评论
]]>
公司XX老网站性能调优http://www.aygfsteel.com/zpuser/archive/2007/04/26/113891.htmlacoolyacoolyThu, 26 Apr 2007 11:41:00 GMThttp://www.aygfsteel.com/zpuser/archive/2007/04/26/113891.htmlhttp://www.aygfsteel.com/zpuser/comments/113891.htmlhttp://www.aygfsteel.com/zpuser/archive/2007/04/26/113891.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/113891.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/113891.html阅读全文

acooly 2007-04-26 19:41 发表评论
]]>
TOMCAT-5.5.X整合APRhttp://www.aygfsteel.com/zpuser/archive/2007/04/26/113827.htmlacoolyacoolyThu, 26 Apr 2007 08:16:00 GMThttp://www.aygfsteel.com/zpuser/archive/2007/04/26/113827.htmlhttp://www.aygfsteel.com/zpuser/comments/113827.htmlhttp://www.aygfsteel.com/zpuser/archive/2007/04/26/113827.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/113827.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/113827.html
1.    准备

2.    整合

1.1.      安装 jdk1.5

1.2.      安装 apr-1.2.8

1.3.      安装 Tomcat-5.5.17

1.4.      Tomcat 整合 APR

1.5.      启动验证安装

3.    参?/span>

1. 准备

操作pȝQ?/span> RedHat AS4 update1
Tomcat-5.5.17 :http://tomcat.apache.org
arp1.2.8:http://apr.apache.org/
jdk1.5.x:http://java.sun.com

2. 整合

1.1. 安装 jdk1.5

?/span>
请安装完成后Q设|?/span> JAVA_HOME

1.2. 安装 apr-1.2.8

默认安装后, apr 的安装目录ؓQ?/span> /usr/local/apr

$ cd /tools
$ wget http://apache.mirrors.tds.net/apr/apr-1.2.8.tar.gz
$ tar -xzvf apr-1.2.8.tar.gz
$ cd apr-1.2.8
$ ./configure
$ make
$ make install

1.3. 安装 Tomcat-5.5.17

$ cd /tools
$ wget http://archive.apache.org/dist/tomcat/tomcat-5/v5.5.17/bin/apache-tomcat-5.5.17.tar.gz
$ tar -xzvf apache-tomcat-5.5.17.tar.gz
$ mv apache-tomcat-5.5.17 /usr/local/

2.3.
安装 APR
tomcat-5.5.x
?/span> apr lg是和 tomcat-5.5.x 一起发布的Q默认在 $CATALINA_HOME/bin/tomcat-native.tar.gz

$ cd $CATALINA_HOME/bin/
$ tar -xzvf tomcat-native.tar.gz
$ cd tomcat-native-1.1.3/jni/native
$ ./configure --with-apr=/usr/local/apr
$ make
$ make install

1.4. Tomcat 整合 APR

修改 tomcat 的启?/span> shell Q?/span> catalina.sh Q,在该文g中加入启动参敎ͼ CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib" 。也可以在环境变量中配置 :export CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib"

$ export CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib

 

1.5. 启动验证安装


$ cd $CATALINA_HOME/bin
$ ./catalina.sh run

如果看到下面的启动日志,表示成功?/span>
2007-4-26 15:34:32 org.apache.coyote.http11.Http11AprProtocol init

3. 参?/span>

tomcat apr lg官方Q?/span> http://tomcat.apache.org/tomcat-5.5-doc/apr.html



acooly 2007-04-26 16:16 发表评论
]]>
SIMhttp://www.aygfsteel.com/zpuser/archive/2007/03/07/102448.htmlacoolyacoolyWed, 07 Mar 2007 09:44:00 GMThttp://www.aygfsteel.com/zpuser/archive/2007/03/07/102448.htmlhttp://www.aygfsteel.com/zpuser/comments/102448.htmlhttp://www.aygfsteel.com/zpuser/archive/2007/03/07/102448.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/102448.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/102448.html
SIM卡就是一个在内部包含有大规模集成电\的卡片,卡片内部存储了数字移动电话客L信息、加密密钥等内容Q它可供GSM|络对客戯n份进行鉴别,q对客户通话时的语音信息q行加密。SIM卡的使用Q完全防止了q机和通话被窃听行为,q且SIM卡的制作是严格按照GSM国际标准和规范来完成的,它客户的正帔R信得到了可靠的保障。现在的数字电话都是必须要安装SIM卡之后才可以使用Q如果不安装的话Q那么后果相信也׃不用我多说了。在没有安装SIM卡的情况下,我们仅仅只能拨打?19?12q种紧急电话的L?br />

SIM卡在GSMpȝ中的应用Q得卡和手机分,一张SIM卡唯一标识一个客戗一张SIM卡可以插入Q何一部GSM手机中用,而用手机所产生的通信费用则自动记录在该SIM卡所唯一标识的客L帐户?

我们在用手机时Q会接触?U密?QSIM卡的PIN、PIN2、PUK、PUK2和手机密码。前四种初始密码都是SIM卡供应商Ud、联通提供的Q手机密码是手机生商提供的。它们之间的关系如下Q?br />
1、PIN?即PIN1?是SIM卡的个h识别密码 Q一般在修改前原始密码是1234Q如果不是就不要再试了,?860/1001咨询。打开开机PIN码,刚每ơ开机后p输入PIN码!如果输入三次错误Q需要用PUK?解锁QPUK?q动、联通提供,如果输入十次错误会导致SIM卡烧毁,所以有问题不要自己随便猜测密码 Q马上找Ud、联通?br />
  2、PIN2码是讑֮手机计费时用的Q如果输入三ơ错误需要用 PUK 2码解锁。目前移动、联通都不提供此功能支持,即PIN2密码锁死也不会媄响手机正怋用?br />
  3、PIN码连l输?0ơ都是错误的话就会锁卡要求用PUK?来解开Q而PUK码的输入Z只有3ơ,3ơ都输错的话QSIM卡将会给怹锁死Q即报废了?br />
  4、PUK码,不管你用的是全球通还是神州行Q网l服务商那里都有资料保存Q一旦需要输入时Q可以致늛应的服务热线来查询,先核对用戯料就行了。这些密码设定及更改都在菜单Q其他设定-安全讑֮中?/p>


   忘记PIN码可以用PUK码来解密QPUK密码一般不向用h供,但某些SIM卡除外,比如州行的用户随卡提供PUK。如果你的SIM卡的PUK没有随卡提供Q你可以到当地的|络q营商营业厅要求解锁Q一般是免费的?/p>

SIM外观
在实际用中有两U功能相同而Ş式不同的SIM卡:卡片式(俗称大卡QSIM卡,q种形式的SIM卡符合有关IC卡的ISO7816标准Q类似IC卡;嵌入式(俗称卡QSIM卡,其大只?5mm×15mmQ是半永久性地装入到移动台讑֤中的卡?

“大卡”上真正起作用的是它上面的那张“小卡”,而“小卡”上起作用的部分则是卡面上的铜制接口及其内部胶封的卡内逻辑电\。目前国内流行样式是“小卡”,卡也可以换成“大卡”(需加装一卡托Q。“大卡”和“小卡”分别适用于不同类型的GSMUd电话Q早期机型如摩托|拉GC87C?08C{手机用的是“大卡”,而目前新出的机型基本上都使用“小卡?

在SIM卡的背面有以五个一排,被排成四排的一l数字,在这l数字最前面的六位数字所代表的是中国的代P像从国外打电话到国内都需要先拨打86一栗第七位数字则代表的是接入号码,如果?的话Q那么这张SIM卡的电话L前三位就?35的,而如果是6的话Q则代表其前三位数字?36Q其它的也都以此cL。第八位数字代表的是该SIM卡的功能位,一般情况下昄的数字ؓ0。第九和W十位数字代表了该SIM卡所处的省䆾。至于第十一和第十二位数字则代表的是该SIM卡的q号Q而第十三位数字则是SIM卡供应商的代码。从W十四位开始至W十九位数字则代表了该SIM卡的用户识别码。最后一个数字是校验位?br />

什么是Ki、IMEI、IMSI
国际Ud讑֤识别码(IMEIQInternational Mobile Equipment Identification NumberQ是区别Ud讑֤的标志,储存在移动设备中Q可用于监控被窃或无效的Ud讑֤。IMEIl成如下图所C,Udl端讑֤通过键入?#06#”即可查得。其总长?5位,每位数字仅??的数字。其中TAC代表型号装配码,由欧z型h准中心分配;FAC代表装配厂家LQSNRZ品序P用于区别同一个TAC和FAC中的每台Ud讑֤QSP是备用编码?/p>

国际Ud用户识别码(IMSIQInternational Mobile Subscriber Identification NumberQ是区别Ud用户的标志,储存在SIM卡中Q可用于区别Ud用户的有效信息。IMSIl成如下图所C,其总长度不过15位,同样使用0?的数字?其中MCC是移动用h属国家代P?位数字,中国的MCC规定?60QMNC是移动网LQ最多由两位数字l成Q用于识别移动用h归属的移动通信|;MSIN是移动用戯别码Q用以识别某一Ud通信|中的移动用戗?/p>

Ki (Key identifier)是SIM卡与q营商之间加密数据传递的密钥。GSM的加密方式是一U称为comp-128的数字加密运,当系l进行验证时会同时用Ki及IMSIQ经q一q串pȝ安全认证讯息后生随机变量,q以A3法q行加密q算与手机内存资料进行比对,当n份确认无误后始可入网。目前GSM使用的Ki长度?6 bytesQ相当于128bitsQ若非经q特D译码程序,使用者无法读取KiQ安全性极高,使用者无L心有被盗打电话的虑?/p>


由此看来Q只要知道SIM卡的Ki、IMSI|我们可以通过软g仿真出SIM卡的功能Q甚臛_以利用多lKi、IMSI|用一张微处理器卡片来同时仿真本来需要多张SIM所完成的功能,q就是“一卡多号”技术?br />SIM卡的软gҎ?
SIM卡采用新式单片机及存储器理l构Q因此处理功能大大增强。其Ҏ的逻辑l构是树型结构。全部特性参C息都是用数据字段方式表达QSIM卡中存有3cL据信息:

1. 与持卡者相关的信息以及SIM卡将来准备提供的所有业务信息,q种cd的数据存储在根目录下Q?br />2. GSM应用中特有的信息Q这U类型的数据存储在GSM目录下;
3.   GSM应用所使用的信息,此信息可与其他电信应用或业务׃nQ位于电信目录下?br />
在SIM卡根目录下有3个应用目录,一个属于行政主部门应用目录,另外两个属于技术管理的应用目录Q分别是GSM应用目录和电信应用目录。所有的目录下均为数据字D,有二q制的和格式化的数据字段。数据字D中的信息有的是永存性的即不能更新的Q有的是暂存的需要更新的。每个数据字D都要表辑և它的用途、更新程度、数据字D늚Ҏ?br />
SIM卡内部的数据
了解完SIM卡的大概之后Q我们再来看看SIM卡具体都能存储哪些类型的数据。以目前的情冉|看,SIM卡能够存储的数据cd主要被分Z下四U:
1. 由SIM卡生产厂商存入的pȝ原始数据
2. 存储手机的固定信息,手机在出售之前都会被SIM卡中心记录到SIM卡当中,主要包括鉴权和加密信息、国际移动用戯别码QIMSIQ、IMSI认证法、加密密匙生成算法、密匙生成前Q用户密匙的生成法Q这三种法均ؓ128位)
3. 用户自己存入的数据,如短消息、固定拨受羃位拨受性能参数、话费记数等Q能够存储有关的电话LQ也是具备电话功能?br />4. 有关于网l方面的数据Q用户在用卡q程中自动存入和更新的网l接l和用户信息cL据,包括最q一ơ位|登记时手机所在位|识别号、设|的周期性位|更新间隔时间、时移动用户号{。不q这U数据的存放是暂时性的Q也是说它q不是永久的存放于SIM卡之中?br />
 5.相关的业务代码,q一点相信也是大家很熟悉的,那就是非帔R要的个h识别?也就使我们^常所说的PIN?Q还有就  是解开锁定用的解锁?PUK){等?br />  
以上四种cd的数据都是存储在SIM卡当中的Q而我们通常也是可以利用q些数据来进行手机的讄Q每张SIM卡个人密?PIN)都是可以q戯|,利用加密的功能可以实现防止手其它人所盗用甚至被窃听,由此看来SIM卡不仅仅可以为我们提供打电话的功能,而且qؓ我们保护自己的隐U而提供了安全的保障?br />
SIM卡内部的数据都存攑֜各自的目录项内,W一cL据放在根目录Q当甉|开启后首先q入根目录,再根据指令进入相关的子目录,每种目录及其内部的数据域均有各自的识别码保护Q只有经q核对判别以后才能对数据域中的数据进行查询、读出和更新。上面第一cL据通常属于怹性数据,由SIM卡生产厂商注入以后无法更改,W二cL据只有网l运行部门的专门机构才允许查阅和更新Q第三、四cL据中的大部分允许用户利用手机对其q行d操作?br />
SIM卡的cd
SIM卡的存储定w?kB?kB?6kB?2kB?4kB{。STK?SIM application Tool Kit)是SIM卡的一U,它能为手机提供增值服务,如移动梦|业务等。SIM卡能够储存多电话号码和短信取决于卡内数据存储器EEPROM的容量(?KB?KB?KB定wQ,假设一张EEPROM定w?KB的SIM卡,可储存以下容量的数据Q?00l电话号码及其对应姓名?5l短信息?5l最q拨出的L?位SIM卡密码(PINQ。目前中国移?中国联通实际对普通用h供的多数是普?K的SIM卡?br />
SIM卡的接口
    SIM卡是通过卡面上铜制接口来q接卡内逻辑电\与移动终端的QSIM卡芯片有8个触点,通常与移动设备连接需?个触炏V?br />
SIM卡是一个装有微处理器(CPUQ的芯片卡,它的内部?个模块,q且每个模块都对应一个功能:微处理器CPUQ?位)、程序存储器ROMQ??kbitQ、工作存储器RAMQ??6kbitQ数据存储器EEPROMQ?6?56kbitQ和串行通信单元。这5个模块被胶封在SIM卡铜制接口后与普通IC卡封装方式相同。这5个模块必集成在一块集成电路中Q否则其安全性会受到威胁Q因片间的连U可能成为非法存取和盗用SIM卡的重要U烦?

SIM卡的供电分ؓ5VQ?998q前发行Q?V?V兼容?V?.8V{,当然q些卡必M相应的手机配合用,xZ生的SIM卡供는压与该SIM卡所需的电压相匚w。SIM卡插入手机后Q电源端口提供电源给SIM卡内各模块?/p>

acooly 2007-03-07 17:44 发表评论
]]>
STKhttp://www.aygfsteel.com/zpuser/archive/2007/03/07/102440.htmlacoolyacoolyWed, 07 Mar 2007 09:10:00 GMThttp://www.aygfsteel.com/zpuser/archive/2007/03/07/102440.htmlhttp://www.aygfsteel.com/zpuser/comments/102440.htmlhttp://www.aygfsteel.com/zpuser/archive/2007/03/07/102440.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/102440.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/102440.html  STK可以理解Zl开发增g务的命oQ一U小型编E语aQ它允许Z卡的用户w䆾识别模块(SIM?q行自己的应用Y件?br />
STK技术主要应用于手机银行、股交易、外汇买卖、理财秘书等领域。移动新业务“手机银行”、“股查询与交易”等是在用该Ҏ术?/p>

  STK卡同原来的SIM卡一P可以在普通GSM手机上用。不同的是,STK卡是C代的卡,h很高的存储量。用户在GSM|点换上STK卡后Q每月只需交纳20元左右的一W固定费用(各省不同Q?br />



acooly 2007-03-07 17:10 发表评论
]]>
[原]JAVA关键?finalhttp://www.aygfsteel.com/zpuser/archive/2007/02/10/99196.htmlacoolyacoolySat, 10 Feb 2007 15:56:00 GMThttp://www.aygfsteel.com/zpuser/archive/2007/02/10/99196.htmlhttp://www.aygfsteel.com/zpuser/comments/99196.htmlhttp://www.aygfsteel.com/zpuser/archive/2007/02/10/99196.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/99196.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/99196.html ?/span> JAVA 语言中,有很多特D的关键字( final,static,super,supert,this {)是每?/span> JAVA E序员必d该搞清楚的,不仅在实际开发中会用刎ͼ而v也是面试或考试题里面青睐的考点之一?/span>

本文是自己关于关键字 final 的一些ȝ?/span> final 关键字主要应用在标志和声明类Q成员变量和ҎZ可变Q通过q个基本定义可以扩展?/span> final 可以限制cdҎ的承关pR?/span>

 

final 变量

final 变量分ؓ单变量和对象变量。声?/span> final 的简单变量,表示该变量从初始化后其|单变量直接存储|而不是引用)׃会改变,需要注意的是在使用其他cL供的 public ?/span> final 单变量的时候,q其他cL变了其定义ƈ重新~译Q用的cd重新~译前该值是不会改变的(参考: http://blog.csdn.net/daniel112/archive/2006/10/11/1330255.aspx Q。声明ؓ final 的对象变量表CZ旦初始化其引用不会改变?/span>

final 变量初始化化可以在声明时或构造函C完成?/span>

Public  class  MyFinalTest{

  
/**  声明时候直接初始化  */

  Public 
final  String FINAL_STR  =  “final_str?

  
/**  在构造函C初始化?/span> */

  Private 
final  String FINAL_STR1;

 

  Public MyFinalTest(){

    FINAL_STR1 
=  “asdfasd?

}

}

final c?/span>

定义?/span> final 的类表示该类不能被承,也就是说该类是一个功能设计完成,不在需要扩展的cR同时该成员Ҏ也对应默认标志ؓ final Q成员变量随定义而定?/span>

 

Public  final   class  FinalClass{

  Public 
void  method1(){}

  
/**

  * 没有必要加关键字final

  
*/

  Public 
final   void  method2(){}

}

 

final Ҏ

定义?/span> final 的方法表CҎ不能被子c覆写( override Q?/span>



acooly 2007-02-10 23:56 发表评论
]]>
我的装机软ghttp://www.aygfsteel.com/zpuser/archive/2007/02/07/98464.htmlacoolyacoolyTue, 06 Feb 2007 19:14:00 GMThttp://www.aygfsteel.com/zpuser/archive/2007/02/07/98464.htmlhttp://www.aygfsteel.com/zpuser/comments/98464.htmlhttp://www.aygfsteel.com/zpuser/archive/2007/02/07/98464.html#Feedback0http://www.aygfsteel.com/zpuser/comments/commentRss/98464.htmlhttp://www.aygfsteel.com/zpuser/services/trackbacks/98464.html1.pȝ软g

firefox : http://www.mozilla.com/en-US/firefox/
realplayer:http://cn.real.com/?src=realplayer
q雷Q?a target="_blank" title="http://www.xunlei.com" >http://www.xunlei.com
WinRar:http://www.winrar.com.cn/
HappyShow(强万能播放?完美版:http://www.ogg.cn/software/view-software-244.html
拼音++:
http://dir.jjol.cn/Pyjj/
影音风暴Q?a target="_blank" title="http://www.skycn.com/soft/98.html" >http://www.skycn.com/soft/98.html



acooly 2007-02-07 03:14 发表评论
]]>
վ֩ģ壺 | | IJ| | | üɽ| ƽ| ֱ| ƶ| Ǩ| | | ̨| ͳ| ƶ| ͼƬ| | ĺ| | | ƽ| ;| | | | | | ֹ| ¤| ϳ| | ղ| | С| ɽ| | Ϫ| | | ɽ| ͼƬ|