博文
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 * 本方法不处理任何异常,所有异常全部抛出 */ public static String byt......
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;
static final int S41 = 6; static final int S42 = 10; static final int S43 = 15; static ......
自动机(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){ case(start): ......
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 datatyp; /*0 -- string, 1 -- int, 2 -- binary*/ ......
正则表达式符号解释(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 grunted"中的任何字符。字符+意义:匹配+号前面的字符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 apple."中的’red’。字符{ n }意义:这里的n是一个正整数。匹配前面的n个字符。例如:/a{ 2 }/不匹配"candy,"中的’a’,但匹配"caandy," 中的所有’a’和"caaandy."中前面的两个’a’。字符{ n, }意义:这里的n是一个正整数。匹配至少n个前面的字符。例如:/a{ 2, }不匹配"c......
