代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C
】
加密解密php代码
作者:
mickelfeng
/ 发布于
2015/7/9
/
1203
#include "php.h" #include "php_ini.h" #include "ext/standard/info.h" #include "string.h" char * key = "abcd"; PHP_FUNCTION(encode){ long key_len = strlen(key); char * code, * encode_code; long code_len; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &code, &code_len) == FAILURE){ return; } encode_code = encode(code, code_len, key, key_len); RETURN_STRING(encode_code, 0); } PHP_FUNCTION(decode){ long key_len = strlen(key); char * code, * decode_code; long code_len; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &code, &code_len) == FAILURE){ return; } decode_code = decode(code, code_len, key, key_len); RETURN_STRING(decode_code, 0); } PHP_FUNCTION(run){ char * en_base64_code; long en_base64_code_len; char * decode_code; long key_len = strlen(key); char * eval_code; char * str_name; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &en_base64_code, &en_base64_code_len) == FAILURE){ return; } str_name = zend_make_compiled_string_description("phpencoder" TSRMLS_CC); decode_code = decode(en_base64_code, en_base64_code_len, key, key_len); //解码 spprintf(&eval_code, 0, " ?>%s<?php ", decode_code); free(decode_code); if(zend_eval_string(eval_code, NULL, str_name TSRMLS_CC) == FAILURE){ //解析失败 efree(str_name); efree(eval_code); php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Please make sure '<?php' end with '?>'", PHP_EOL); RETURN_FALSE; } efree(str_name); efree(eval_code); RETURN_TRUE; } inline char * encode(char * code, long code_len, char* key, long key_len){ char * code_encode; int i; long offset = 0, ret_len; code_encode = strdup(code); for(i =0; i<code_len; i++){ if(offset == key_len){ offset = 0; } * (code_encode + i) = * (code + i) ^ * (key + offset); offset ++; } return php_base64_encode(code_encode, code_len, &ret_len); //base64 加密 } inline char * decode(char * code,long code_len, char* key, long key_len){ char * code_decode; char * nobase_code; int i; long offset = 0, ret_len; zend_bool strict = 0; code_decode = strdup(code); nobase_code = php_base64_decode_ex((unsigned char*)code, code_len, &ret_len, strict); //解密,ret_len 返回长度 for(i =0; i<ret_len; i++){ if(offset == key_len){ offset = 0; } * (code_decode + i) = * (nobase_code + i) ^ * (key + offset); offset ++; } * (code_decode + i) = '\0'; return code_decode; }
试试其它关键字
加密解密
同语言下
.
获取手机通讯录 iOS去除数字以外的所有字符
.
异步加载音乐等资源
.
交通罚单管理系统
.
freemark实现,简单的替换
.
计算斐波那契数列
.
base64解码 包括解码长度
.
图像显示
.
冒泡排序
.
输入十进制数,输出指定进制
.
链式栈
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
mickelfeng
贡献的其它代码
(
22
)
.
安卓图片异步加载工具类
.
加密解密php代码
.
将PHP数组有格式的写入文件中
.
获取访问页面的http状态码
.
WinInet远程下载文件的
.
用NetAPI获取网卡的物理MAC地址
.
极方便的动态 SQL 生成工具
.
PHP图片缩放函数:实现等比例不失真缩放
.
判断手机移动设备访问
.
扁平化的bootstrap
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3