/***********************************************************************
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: [email protected]
*************************************************************************/
#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学籍管理系统源码毕业设计
共625个文件
php:332个
gif:129个
html:44个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 15 浏览量
2022-04-06
21:02:54
上传
评论
收藏 1.81MB ZIP 举报
温馨提示
Thinkphp学籍管理系统源码,基于Thinkphp3.2框架开发的教学管理系统后台程序,毕业设计作品,通过导师实践考核。 自带数据库文件,模板分离,易于维护,适合二次开发。 1.首先将数据库相关操作完成 建立数据库连接 导入cms.sql 2.将代码解压 放在站点根目录下(在此之前要配置好php运行环境) 3.后台管理员登录地址:http://localhost/admin.php/Admin/index 管理员用户名和密码都是admin admin 可以在用户管理处添加一个用户名,以便第4步操作 4.前台教师登录地址:http://localhost/index.php/home/index/index ------------- 也可能是这个安装说明: 1.建立数据库连接,导入cms.sql, 2.Application/Admin/Conf/config.php 配置数据库账号密码 3.浏览器打开 域名/admin.php,用户名和密码都是admin admin888
资源推荐
资源详情
资源评论
收起资源包目录
Thinkphp学籍管理系统源码毕业设计 (625个子文件)
php_xxtea.c 6KB
xxtea.c 2KB
COPYING 1KB
CREDITS 53B
style.css 18KB
fox.css 7KB
skin.css 4KB
invalid.css 2KB
reset.css 1KB
Thumbs.db 175KB
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
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
php_xxtea.dsp 9KB
bg-sidebar.gif 32KB
bg-body.gif 21KB
login-content-bg.gif 20KB
bg-radial-gradient.gif 17KB
bg-login.gif 13KB
login-wel.gif 9KB
logo.gif 7KB
loading.gif 6KB
jquery.wysiwyg.gif 4KB
menu_bg2.gif 4KB
servicezhgb2312.gif 3KB
bg-menu-item-green.gif 3KB
closelabel.gif 3KB
buttom-right.gif 2KB
ershou_1.gif 2KB
ershou_2.gif 2KB
menu_bgs.gif 2KB
title.gif 2KB
sitebackup.gif 2KB
DefaultDocs.gif 2KB
menu_bg.gif 2KB
tool-down-pic.gif 2KB
buttom-left.gif 2KB
mime.gif 2KB
password.gif 2KB
ad.gif 2KB
lminfo.gif 2KB
defind.gif 2KB
ipsecurity.gif 2KB
user-info.gif 2KB
Redirects.gif 2KB
usercontrol.gif 2KB
menu_bg1.gif 1KB
lm.gif 1KB
Login_but.gif 1KB
shortcut-button-bg.gif 1KB
pic19.gif 1KB
menu_topline.gif 1KB
pic5.gif 1KB
pic23.gif 1KB
pic18.gif 1KB
yc.gif 1018B
out.gif 859B
nav-right-bg.gif 735B
pic16.gif 651B
icon-demo.gif 648B
icon-phone.gif 633B
icon-login-seaver.gif 633B
imageedit.gif 625B
edit.gif 624B
pic17.gif 622B
report2_(delete).gif 621B
delete.gif 618B
image_(add)6.gif 617B
delete_6.gif 617B
imagedelete.gif 615B
report2_(add).gif 615B
format.gif 610B
image_1.gif 608B
add.gif 606B
pic13.gif 605B
yx.gif 604B
stop.gif 604B
buttom-copy-bg.gif 600B
str.gif 598B
ts.gif 597B
st.gif 594B
icon-mail2.gif 592B
pic14.gif 587B
pic22.gif 585B
pic9.gif 580B
vie.gif 578B
pic8.gif 578B
共 625 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
办公模板库素材蛙
- 粉丝: 1565
- 资源: 2295
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- VID20240521070643.mp4
- Android系统原理与开发学习要点详解-培训课件.zip
- 部署yolov8的tensorrt模型支持检测分割姿态估计的C++源码+部署步骤.zip
- 以简单、易用、高性能为目标、开源的时序数据库,支持Linux及Windows, Time Series Database.zip
- python-leetcode面试题解之第198题打家劫舍-题解.zip
- python-leetcode面试题解之第191题位1的个数-题解.zip
- python-leetcode面试题解之第186题反转字符串中的单词II-题解.zip
- 一个基于python的web后端高性能开发框架,下载可用
- python-leetcode面试题解之第179题最大数-题解.zip
- python-leetcode面试题解之第170题两数之和III数据结构设计-题解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功