/***********************************************************************
Copyright 2006-2007 Ma Bingyao
These sources is free software. Redistributions of source code must
retain the above copyright notice. Redistributions in binary form
must reproduce the above copyright notice. You can redistribute it
freely. You can use it with any free or commercial software.
These sources is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY. Without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
You may contact the author by:
e-mail: andot@coolcode.cn
*************************************************************************/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "php.h"
#if HAVE_XXTEA
#include "php_xxtea.h"
#include "ext/standard/info.h" /* for phpinfo() functions */
#include "xxtea.h"
/* compiled function list so Zend knows what's in this module */
zend_function_entry xxtea_functions[] =
{
ZEND_FE(xxtea_encrypt, NULL)
ZEND_FE(xxtea_decrypt, NULL)
ZEND_FE(xxtea_info, NULL)
{NULL, NULL, NULL}
};
/* compiled module information */
zend_module_entry xxtea_module_entry =
{
STANDARD_MODULE_HEADER,
XXTEA_MODULE_NAME,
xxtea_functions,
ZEND_MINIT(xxtea),
ZEND_MSHUTDOWN(xxtea),
NULL,
NULL,
ZEND_MINFO(xxtea),
XXTEA_VERSION,
STANDARD_MODULE_PROPERTIES
};
/* implement standard "stub" routine to introduce ourselves to Zend */
#if defined(COMPILE_DL_XXTEA)
ZEND_GET_MODULE(xxtea)
#endif
static xxtea_long *xxtea_to_long_array(unsigned char *data, xxtea_long len, int include_length, xxtea_long *ret_len) {
xxtea_long i, n, *result;
n = len >> 2;
n = (((len & 3) == 0) ? n : n + 1);
if (include_length) {
result = (xxtea_long *)emalloc((n + 1) << 2);
result[n] = len;
*ret_len = n + 1;
} else {
result = (xxtea_long *)emalloc(n << 2);
*ret_len = n;
}
memset(result, 0, n << 2);
for (i = 0; i < len; i++) {
result[i >> 2] |= (xxtea_long)data[i] << ((i & 3) << 3);
}
return result;
}
static unsigned char *xxtea_to_byte_array(xxtea_long *data, xxtea_long len, int include_length, xxtea_long *ret_len) {
xxtea_long i, n, m;
unsigned char *result;
n = len << 2;
if (include_length) {
m = data[len - 1];
if ((m < n - 7) || (m > n - 4)) return NULL;
n = m;
}
result = (unsigned char *)emalloc(n + 1);
for (i = 0; i < n; i++) {
result[i] = (unsigned char)((data[i >> 2] >> ((i & 3) << 3)) & 0xff);
}
result[n] = '\0';
*ret_len = n;
return result;
}
static unsigned char *php_xxtea_encrypt(unsigned char *data, xxtea_long len, unsigned char *key, xxtea_long *ret_len) {
unsigned char *result;
xxtea_long *v, *k, v_len, k_len;
v = xxtea_to_long_array(data, len, 1, &v_len);
k = xxtea_to_long_array(key, 16, 0, &k_len);
xxtea_long_encrypt(v, v_len, k);
result = xxtea_to_byte_array(v, v_len, 0, ret_len);
efree(v);
efree(k);
return result;
}
static unsigned char *php_xxtea_decrypt(unsigned char *data, xxtea_long len, unsigned char *key, xxtea_long *ret_len) {
unsigned char *result;
xxtea_long *v, *k, v_len, k_len;
v = xxtea_to_long_array(data, len, 0, &v_len);
k = xxtea_to_long_array(key, 16, 0, &k_len);
xxtea_long_decrypt(v, v_len, k);
result = xxtea_to_byte_array(v, v_len, 1, ret_len);
efree(v);
efree(k);
return result;
}
/* {{{ proto string xxtea_encrypt(string data, string key)
Encrypt string using XXTEA algorithm */
ZEND_FUNCTION(xxtea_encrypt)
{
unsigned char *data, *key;
unsigned char *result;
xxtea_long data_len, key_len, ret_length;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &data, &data_len, &key, &key_len) == FAILURE) {
return;
}
if (data_len == 0) RETVAL_STRINGL(NULL, 0, 0);
if (key_len != 16) RETURN_FALSE;
result = php_xxtea_encrypt(data, data_len, key, &ret_length);
if (result != NULL) {
RETVAL_STRINGL((char *)result, ret_length, 0);
} else {
RETURN_FALSE;
}
}
/* }}} */
/* {{{ proto string xxtea_decrypt(string data, string key)
Decrypt string using XXTEA algorithm */
ZEND_FUNCTION(xxtea_decrypt)
{
unsigned char *data, *key;
unsigned char *result;
xxtea_long data_len, key_len, ret_length;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &data, &data_len, &key, &key_len) == FAILURE) {
return;
}
if (data_len == 0) RETVAL_STRINGL(NULL, 0, 0);
if (key_len != 16) RETURN_FALSE;
result = php_xxtea_decrypt(data, data_len, key, &ret_length);
if (result != NULL) {
RETVAL_STRINGL((char *)result, ret_length, 0);
} else {
RETURN_FALSE;
}
}
/* }}} */
ZEND_MINIT_FUNCTION(xxtea)
{
return SUCCESS;
}
ZEND_MSHUTDOWN_FUNCTION(xxtea)
{
return SUCCESS;
}
ZEND_MINFO_FUNCTION(xxtea)
{
php_info_print_table_start();
php_info_print_table_row(2, "xxtea support", "enabled");
php_info_print_table_row(2, "xxtea module version", XXTEA_VERSION);
php_info_print_table_row(2, "xxtea author", XXTEA_AUTHOR);
php_info_print_table_row(2, "xxtea homepage", XXTEA_HOMEPAGE);
php_info_print_table_end();
}
ZEND_FUNCTION(xxtea_info)
{
array_init(return_value);
add_assoc_string(return_value, "ext_version", XXTEA_VERSION, 1);
add_assoc_string(return_value, "ext_build_date", XXTEA_BUILD_DATE, 1);
add_assoc_string(return_value, "ext_author", XXTEA_AUTHOR, 1);
add_assoc_string(return_value, "ext_homepage", XXTEA_HOMEPAGE, 1);
}
#endif /* if HAVE_XXTEA */
没有合适的资源?快使用搜索试试~ 我知道了~
ThinkPHP雍达商城源码(包括前后台)
共677个文件
php:311个
gif:186个
jpg:57个
5星 · 超过95%的资源 需积分: 15 205 下载量 38 浏览量
2017-03-30
15:15:25
上传
评论 4
收藏 2.54MB RAR 举报
温馨提示
雍达商城包括前台模板和后台模板,带有数据库,导入数据库之后,只要修改Common/Conf/config.php中的数据库配置即可运行。
资源推荐
资源详情
资源评论
收起资源包目录
ThinkPHP雍达商城源码(包括前后台) (677个子文件)
.buildpath 174B
php_xxtea.c 6KB
xxtea.c 2KB
CREDITS 53B
style.css 29KB
style.css 29KB
User_Login.css 6KB
admin.css 2KB
qq.css 1KB
mine.css 576B
Thumbs.db 21KB
768.dhp 40KB
512.dhp 35KB
1024.dhp 32KB
1536.dhp 28KB
3072.dhp 28KB
2048.dhp 25KB
4096.dhp 25KB
96.dhp 20KB
128.dhp 18KB
160.dhp 14KB
192.dhp 12KB
256.dhp 10KB
php_xxtea.dsp 9KB
bg.gif 18KB
shuomin.gif 18KB
top2.gif 11KB
logo.gif 7KB
user_top_c.gif 7KB
salesTitBg.gif 6KB
user_botton.gif 6KB
user_top_l.gif 6KB
catBg.gif 6KB
user_bottom_c.gif 5KB
1240803062307572427.gif 5KB
user_bottom_r.gif 4KB
admin_p.gif 4KB
ecshop_logo.gif 4KB
ur_bg.gif 4KB
user_bottom_l.gif 4KB
top10_1.gif 4KB
user_top_r.gif 4KB
bnt_subOrder副本.gif 3KB
siderIM_infobox.gif 3KB
user_main_l.gif 3KB
siderIM_title.gif 3KB
search_bg.gif 3KB
topNavBg.gif 3KB
comparebox.gif 3KB
logo222222.gif 3KB
user_tit3.gif 3KB
user_main_r.gif 3KB
logo1.gif 2KB
top10_tit.gif 2KB
user_tit1.gif 2KB
1240803144788047486.gif 2KB
moreBrands.gif 2KB
compareSub.gif 2KB
user_tit2.gif 2KB
user_main_c.gif 2KB
qq_1.gif 2KB
1240802922410634065.gif 2KB
jiesuan.gif 2KB
msn.gif 2KB
bnt_buy_1.gif 2KB
salesGoodBg.gif 2KB
linklogo.gif 2KB
user_login_name.gif 2KB
continue.gif 2KB
commentsBnt.gif 2KB
user_login_password.gif 1KB
bnt_ur_reg.gif 1KB
bnt_ur_log.gif 1KB
checkout.gif 1KB
bnt_subOrder.gif 1KB
tit_new_bg.gif 1KB
goumai2.gif 1KB
stars3.gif 1KB
tit_best_bg.gif 1KB
stars2.gif 1KB
user_login_validatecode.gif 1KB
shoucang2.gif 1KB
help2.gif 1KB
stars4.gif 1KB
stars1.gif 1KB
help4.gif 1KB
tit_hot_bg.gif 1KB
tit_sale_bg.gif 1KB
compareBg.gif 1KB
bnt_cat.gif 1KB
car_bg.gif 1KB
help5.gif 1KB
newart_tit.gif 1KB
help1.gif 1KB
bnt_reg.gif 1KB
help3.gif 1KB
bnt_buy.gif 1KB
bnt_coll.gif 1KB
bnt_log.gif 1KB
tit_best_r.gif 1KB
共 677 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
wyfalj
- 粉丝: 8
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页