一些加密解密功能比较重要,底层的实现不应该被外界的人所感知。
跟随我的步伐,花费10分钟的阅读时间,三步之内解决使用C语言来写扩展库的问题(python 2.7)。
目录文件
├── crypt.h // 头文件
├── libcrypt.a // 包含Encrypt和Decrypt的具体实现
├── occrypt.c // 暴露给Python使用的主要文件
├── occrypt.so* // 生成的Python扩展库
└── test.py // 测试程序
C语言写Python扩展库示例
occrypt.c文件内容
#include "crypt.h"
#include
#include
#include
#include
static PyObject * /* returns string object */
oc_encrypt(PyObject *self, PyObject *args)
{
char *key = NULL;
char *plainText = NULL;
if (!PyArg_ParseTuple(args, "ss", &key, &plainText)) /* convert Python -> C */
return NULL; /* null=raise exception */
char *text = Encrypt(key, plainText);
PyObject *ret = Py_BuildValue("s", text); /* convert C ->