• 大小: 4.45MB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2023-11-08
  • 语言: PHP
  • 标签: gsms  

资源简介

gsms应急通讯代码基于openbts2.8 页面使用php开发,包含openbts 2.8 编译的程序

资源截图

代码片段和文件信息

/***********************************************************************

    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);

评论

共有 条评论

相关资源