麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
[求助]请问别人给的cgi程序怎么改写成php可用的?
悬赏分:20 - 2007年08月13日

程序如下

example.cpp
#include
#include
#include "Sign_Lib.h"
#define PRIVATEKEYFILE "/root/privatekey.txt"
#define PUBLICKEYFILE "/root/publickey.txt"
#define SGNMGLENGTH 257
void main(void)
{
int verify_result=0;
bool result;
char message[255];
char sgnmessage[SGNMGLENGTH];
memset(message,0,255);
memset(sgnmessage,0,SGNMGLENGTH);

/*-------------以下是从请求中取得参数部分------------------*/
cgiFormStringNoNewlines("billno", c_billno, 50);
cgiFormStringNoNewlines("amount", c_amount, 20);
cgiFormStringNoNewlines("date", c_date, 20);
cgiFormStringNoNewlines("succ", c_succ, 1);
cgiFormStringNoNewlines("signature", c_signature, 256);
//注意:signature的长度一定是256个Byte
/*----------------------------------------------------------*/

sprintf(message,"%s%s%s%s",c_billno,c_amount,c_date,c_succ);
/*用billno,amount,date,succ生成原始消息*/
result = VerifyMessage(PUBLICKEYFILE,message,c_signature,&verify_result);
/*函数VerifyMessage的返回值result如果为true且verify_result为0时,表示成功,result为false表示失败*/
/*如果result为false,检查错误代码verify_result*/
/*verify_result为1,表示签名不正确*/
/*verify_result为2,表示没有生成消息文件*/
/*verify_result为3,表示没有生成签名文件*/
/*verify_result为4,表示签名长度错*/
printf("%d\r\n",verify_result);
if((result==1)&&(verify_result==0))
printf("It's OK,Verifying Message succeed!\r\n");
}
=====================
Sign_Lib.h

#ifndef SIGN_LIB_H
#define SIGN_LIB_H

#define MESSAGEFILE "/root/message.txt"
#define SIGNATUREFILE "/root/signature.txt"

extern "C" bool VerifyMessage(const char* publickey,const char*message, const char* signature, int *result);
/*
publickey 为公钥文件全路经
message 为原始消息
signature 为消息的签名
result 如果有错误发生,为返回的错误代码
函数返回值为true且result=0,表示签名正确;否则表示签名不正确。
这时可以参考result的值检查错误原因
result=1,表示签名与原始消息不符合
result=2,表示没有生成消息问件
result=3,表示没有生成签名文件
result=4,表示签名的长度错误
*/

#endif

VerifyMessage是加密算法的函数,没有定义

在windows下面有个dll
linux下面让我放个libcryptopp.a到/usr/lib/下面

应该是在libcryptopp.a里面定义了吧?
请问可以调用吗?

提问者:qdlover   08-13 17:05
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
34 + 96 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM