博文

DES加密、解密字符串算法(java版)(2006-11-01 11:49:00)

摘要:         因为要用到,所以在网上找了资料后,写了个。:) DESPlus.java /**
 * @author    李国庆
 * @company   leemenz (C) copyright
 * @time      Nov 1, 2006  10:18:41 AM
 * @version   1.0.0.0
 * @package   com.des
 */
package com.des; import java.security.*;
import javax.crypto.*; public class DESPlus {
 private static String strDefaultKey = "national";  private Cipher encryptCipher = null;  private Cipher decryptCipher = null;  /**
  * 将byte数组转换为表示16进制值的字符串, 如:byte[]{8,18}转换为:0813, 和public static byte[]
  * hexStr2ByteArr(String strIn) 互为可逆的转换过程
  *
  * @param arrB
  *            需要转换的byte数组
  * @return 转换后的字符串
  * @throws Exception
  *          &nb......

阅读全文(6208) | 评论:1

MD5加密算法(2006-08-15 20:18:00)

摘要:    今天,因为要用到一个加密的过程,所以参照了一些网络上的内容,写了这个md5算法 package com.change.date;
/**
 * <p>Description: MD5加密算法</p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company:  leemenz</p>
 *
 * @author    李国庆
 * @version   1.0.0.0
 */
public class MD5 {
 /** 下面这些S11-S44实际上是一个4*4的矩阵,在原始的C实现中是用#define 实现的,
  * 这里把它们实现成为static final是表示了只读,切能在同一个进程空间内的多个
  * Instance间共享
  */
 static final int S11 = 7;
 static final int S12 = 12;
 static final int S13 = 17;
 static final int S14 = 22;  static final int S21 = 5;
 static final int S22 = 9;
 static final int S23 = 14;
 static final int S24 = 20;  static final int S31 = 4;
 static final int S32 = 11;
 static final int S33 = 16;
 static final int S34 = 23;  st......

阅读全文(4028) | 评论:4

自动机(2006-05-24 09:23:00)

摘要:        今天在网上逛的时候,看到一段识别java注释代码的自动机,所以跟大家分享!注意支持原创!!!!!! class CommentAutoMata{
    final int start=0;
    final int one=1;
    final int two=2;
    final int three=3;
    final int finalState=4;
    final int five=5;
    final int six=6;
    public List getCommentList(String s){
        ArrayList ret=new ArrayList();
        int begin=-1;     
        int curState=start;
        for(int i=0;i<s.length();i++){
            char c=s.charAt(i);
            switch(curState){
       &......

阅读全文(2022) | 评论:0

ISO8583包简介(2006-05-23 17:23:00)

摘要:ISO8583包(简称8583包)是一个国际标准的包格式,最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。
      8583包前面一段为位图,用来确定包的字段域组成情况。 
      其中位图是8583包的灵魂,它是打包解包确定字段域的关键, 而了解每个字段域的属性则是填写数据的基础。    1、 位图描述如下: 
位图位置:1 
格式:定长 
类型:B16(二进制16位,16*8=128bit) 
描述: 
    如将位图的第一位设为'1',表示使用扩展位图(128个域),否则表示只使用基本位图(64个域)。 
    如使用某数据域,应在位图中将相应的位设位'1',如使用41域,需将位图的41位设为'1'。 
选用条件:如使用65到128域,需设位图域第一位为'1'    2、每个域的定义如下: 
typedef struct ISO8583 

     int bit_flag; /*域数据类型0 -- string, 1 -- int, 2 -- binary*/ 
     char *data_name; /*域名*/ 
     int length; /*数据域长度*/ 
     int length_in_byte;/*实际长度(如果是变长)*/ 
     int variable_flag; /*是否变长标志0:否 2:2位变长, 3:3位变长*/ 
     int data......

阅读全文(3208) | 评论:1

正则表达式符号解释(2006-05-23 17:18:00)

摘要:字符/
意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释。
例如:/b/匹配字符’b’,通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示
匹配一个单词的分界线。
或者:
对于几个字符,通常说明是特殊的,指出紧接着的字符不是特殊的,而应该按字面解释。
例如:*是一个特殊字符,匹配任意个字符(包括0个字符);例如:/a*/意味匹配0个或多个a。为了匹配字面上的*,在a前面加一个反斜杠;例如:/a*/匹配’a*’。

字符^
意义:表示匹配的字符必须在最前边。
例如:/^A/不匹配"an A,"中的’A’,但匹配"An A."中最前面的’A’。

字符$
意义:与^类似,匹配最末的字符。
例如:/t$/不匹配"eater"中的’t’,但匹配"eat"中的’t’。

字符*
意义:匹配*前面的字符0次或n次。
例如:/bo*/匹配"A ghost booooed"中的’boooo’或"A bird warbled"中的’b’,但不匹配"Agoat g
runted"中的任何字符。

字符+
意义:匹配+号前面的字符1次或n次。等价于{1,}。
例如:/a+/匹配"candy"中的’a’和"caaaaaaandy."中的所有’a’。

字符?
意义:匹配?前面的字符0次或1次。
例如:/e?le?/匹配"angel"中的’el’和"angle."中的’le’。

字符.
意义:(小数点)匹配除换行符外的所有单个的字符。
例如:/.n/匹配"nay, an apple is on the tree"中的’an’和’on’,但不匹配’nay’。


字符(x)
意义:匹配’x’并记录匹配的值。
例如:/(foo)/匹配和记录"foo bar."中的’foo’。匹配子串能被结果数组中的素[1], ...,[n] 返
回,或被RegExp对象的属性, ..., 返回。

字符x│y
意义:匹配’x’或者’y’。
例如:/green│red/匹配"green apple"中的’green’和"red a......

阅读全文(2097) | 评论:0