密码软加密
来源:互联网 发布:只读文件数据怎么修改 编辑:程序博客网 时间:2024/06/16 00:05
/*EXEC SQL include "mud.h";*/#include "pberrlog.h"long sc_decrypt(); long sc_encry();long sc_decrypt_2();long sc_encry_2();long ScUnpack();long ScPack();long sc_str2hex();long sc_hex2str();long ChkCstmPwd();long GetCstmEncPwd();long GetCstmPwd();long CrtCstmPwd();long BackCstmPwd();longScUnpack(bit, block, blockLen)unsigned char bit[65]; /* bit array */ unsigned char block[9]; /* byte array */unsigned long blockLen; /* length of byte array */{ unsigned long i, j; unsigned char t; for (i = 0; i < blockLen; i++) { t = block[i]; for (j = 0; j < 8; j++) bit[8 * i + j] = (unsigned char)((t >> (7 - j)) & 1); } return 0;} longScPack(block, bit, blockLen)unsigned char block[9]; /* byte array */unsigned char bit[65]; /* bit array */unsigned long blockLen; /* length of byte array */{ unsigned long i, j; unsigned char t; for (i = 0; i < blockLen; i++) { t = 0; for (j = 0; j < 8; j++) t |= bit[8 * i + j] << (7 - j); block[i] = t; } return 0;} longsc_str2hex( str, hex )unsigned char *str;unsigned char *hex;{ long i; memset(hex, 0, sizeof(hex)); sprintf((char *)hex, "%02X%02X%02X%02X%02X%02X%02X%02X", str[0], str[1], str[2], str[3], str[4], str[5], str[6], str[7]); hex[16] = 0; return 0;}longsc_hex2str( hex, str )unsigned char *hex;unsigned char *str;{ unsigned int i, i_char; char tmp[2+1]; memset(str, 0, sizeof(str)); tmp[2] = 0; for ( i = 0; i < 8; i++) { tmp[0] = hex[i*2]; tmp[1] = hex[i*2+1]; sscanf(tmp, "%x", &i_char); str[i] = i_char; } str[8] = 0; return 0;}longsc_encry (tlr_no, original, result)char tlr_no[7];unsigned char original[9];unsigned char result[17];{ char trankey_bcd[65]; char PC_TRANKEY[17]; unsigned char bkey[65],boriginal[65],bmtext[65]; long i; memset( boriginal,0x00, sizeof( boriginal ) ); memset( bmtext,0x00, sizeof( bmtext ) ); ScUnpack( boriginal, original, 8 ); memset( PC_TRANKEY, 0x00, sizeof( PC_TRANKEY ) ); memset( trankey_bcd, 0x00, sizeof( trankey_bcd ) ); dis_tran_key(tlr_no,PC_TRANKEY); card_change(PC_TRANKEY,trankey_bcd); for ( i =0 ; i < 64 ; i++) { trankey_bcd[i]-='0'; } /* bit key(bkey) & bit text(btext) ---> bit encry text(bmtext) */ DES_CBS( trankey_bcd, boriginal, bmtext ); ScPack( original, bmtext, 8); original[8] = '\0'; sc_str2hex( original, result ); return 0; }longsc_decrypt(tlr_no, mpwd, result)char tlr_no[7];unsigned char mpwd[17];unsigned char result[9];{ unsigned char btext[65],bcipher[65],bkey[65]; unsigned char cipher[9]; char trankey_bcd[65]; char PC_TRANKEY[17]; unsigned long i,j,k; memset( btext, 0, sizeof(btext)); memset( bcipher, 0, sizeof(bcipher)); memset( bkey, 0, sizeof(bkey)); memset( cipher, 0, sizeof(cipher)); memset( PC_TRANKEY, 0, sizeof(PC_TRANKEY)); memset( trankey_bcd, 0, sizeof(trankey_bcd)); cipher[8] = bcipher[64] = btext[64] = bkey[64] = '\0'; sc_hex2str( mpwd, cipher ); /*?? byte->bit */ ScUnpack( bcipher, cipher, 8 ); dis_tran_key(tlr_no, PC_TRANKEY); card_change(PC_TRANKEY,trankey_bcd); for ( i =0 ; i < 64 ; i++) { trankey_bcd[i]-='0'; } /* bit key(bkey1) & bit text(btext) ---> bit encry text(bmtext) */ _DES_CBS( trankey_bcd, bcipher, btext ); for ( i = 0; i< 64; i ++ ) for ( i = 0; i< 64; i ++ ) ScPack( result, btext, 8 ); result[8] = '\0'; return 0;}longGetCstmEncPwd(encrypwd, pwd)char *encrypwd;char *pwd;{ char or_pwd[7]; memset(or_pwd, 0, sizeof(or_pwd)); if ( GetCstmPwd(encrypwd, or_pwd) ) return(-1); WriteLog ( DEBUG_LVL0, "cstmpwd=[%s][%s]\n", encrypwd, or_pwd); if ( ComPmm(or_pwd, pwd) ) return(-1);/* modify by ty 20100125 for CZYH if ( SC6000_3Des(1, or_pwd, pwd) ) return(-1);*/ /* CBSNewLog(2, "cstmpwd", "cstmpwd=[%s][%s]\n", pwd, or_pwd); */ return(0);}longChkCstmPwd(encrypwd, pwd)char *encrypwd;char *pwd;{ char or_pwd[17]; memset(or_pwd, 0, sizeof(or_pwd)); if(strlen(encrypwd)>6) { if ( GetCstmEncPwd(encrypwd, or_pwd) ) return(-1); } else { strcpy(or_pwd,encrypwd); } return(strcmp(pwd,or_pwd));} longCrtCstmPwd(or_pwd, pwd)char *or_pwd; char *pwd; { /* CBSNewLog(2, "cstmpwd", "cstmpwd=[%s]\n", or_pwd); *//* if ( SC6000_3Des(1, or_pwd, pwd) ) return(-1);*/ if ( ComPmm(or_pwd, pwd) ) return(-1); return(0);} longsc_encry_2 (original, result)unsigned char original[9];unsigned char result[17];{ char trankey_bcd[65]; char PC_TRANKEY[17]; unsigned char bkey[65],boriginal[65],bmtext[65]; long i; memset( boriginal,0x00, sizeof( boriginal ) ); memset( bmtext,0x00, sizeof( bmtext ) ); ScUnpack( boriginal, original, 8 ); memset( PC_TRANKEY, 0x00, sizeof( PC_TRANKEY ) ); memset( trankey_bcd, 0x00, sizeof( trankey_bcd ) ); strcpy( PC_TRANKEY, "1234567890987654"); card_change(PC_TRANKEY,trankey_bcd); for ( i =0 ; i < 64 ; i++) { trankey_bcd[i]-='0'; } /* bit key(bkey) & bit text(btext) ---> bit encry text(bmtext) */ DES_CBS( trankey_bcd, boriginal, bmtext ); ScPack( original, bmtext, 8); original[8] = '\0'; sc_str2hex( original, result ); return 0;} longsc_decrypt_2(mpwd, result)unsigned char mpwd[17];unsigned char result[9];{ unsigned char btext[65],bcipher[65],bkey[65]; unsigned char cipher[9]; char trankey_bcd[65]; char PC_TRANKEY[17]; unsigned long i,j,k; memset( btext, 0, sizeof(btext)); memset( bcipher, 0, sizeof(bcipher)); memset( bkey, 0, sizeof(bkey)); memset( cipher, 0, sizeof(cipher)); memset( PC_TRANKEY, 0, sizeof(PC_TRANKEY)); memset( trankey_bcd, 0, sizeof(trankey_bcd)); cipher[8] = bcipher[64] = btext[64] = bkey[64] = '\0'; sc_hex2str( mpwd, cipher ); /*?? byte->bit */ ScUnpack( bcipher, cipher, 8 ); strcpy( PC_TRANKEY, "1234567890987654"); card_change(PC_TRANKEY,trankey_bcd); for ( i =0 ; i < 64 ; i++) { trankey_bcd[i]-='0'; } /* bit key(bkey1) & bit text(btext) ---> bit encry text(bmtext) */ _DES_CBS( trankey_bcd, bcipher, btext ); for ( i = 0; i< 64; i ++ ) for ( i = 0; i< 64; i ++ ) ScPack( result, btext, 8 ); result[8] = '\0'; return 0;}/*设置空函数 编译用*/intSC6000_3Des(int type,char *old_pwd,char *des_pwd){ return(0);}
0 0
- 密码软加密
- 密码加密
- 密码加密
- 密码加密
- 密码加密
- MD5加密(密码加密)
- Android 密码加密 AEC加密
- Hash密码加密函数
- 简单密码加密过程
- 密码加密类(PermissionBase)
- 密码加密处理
- 密码加密类(PermissionBase)
- 字符串 密码加密解密
- MD5加密密码!
- 密码加密的问题
- Java密码加密
- 客户密码加密
- Discuz密码加密方式
- ESql标签(对数据库进行增删查改及命令操作)
- JQuery.Ajax之错误调试帮助信息
- 技术人员如何创业《四》- 打造超强执行力团队
- rails将类常量重构到数据库对应的表中之一
- 转几篇不错的关于REST/RESTful的解释文章
- 密码软加密
- git命令
- mysql 主从复制读写分离实现
- Xcode插件管理一些笔记
- Java集合框架5——集合工具类的使用
- Android Touch Event 超出范围
- shell awk命令
- CListCtrl控件的InsertItem和SetItemText和SetItem三个函数的区别
- 关于NT kernel&System占用80端口的问题如何解决