C++编写Python扩展(密码生成器)
简介
在最近的开发中,遇到了一个问题,发现Python没有一个生成指定复杂度密码的模块(反正我没有找到),需要自己写一段生成随机数的代码来生成密码,因此我就用C++自己写的一个扩展模块。
龙城ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
模块的要求:
- 必须同时包含大写小写和数字
- 可以传递参数设置密码长度
上面的要求可以自己定制,比如说加上特殊字符,都是可以的,只要稍稍修改下代码即可。
源码
头文件
//
// Created by lanyulei on 18-9-27.
//
#ifndef GENERATEPASSWORD_GENERATEPASSWORD_H
#define GENERATEPASSWORD_GENERATEPASSWORD_H
#include
#include
#include
#include
using namespace boost::python;
class GeneratePassword{
public:
GeneratePassword(int length);
std::string getPassword();
private:
int m_intLength;
};
#endif //GENERATEPASSWORD_GENERATEPASSWORD_H
源文件
//
// Created by lanyulei on 18-9-27.
//
#include "GeneratePassword.h"
using namespace std;
// 判断密码复杂度是否符合要求
bool judgment(const string& passowrdValue, int length) {
int Pcount = 0;
int pcount = 0;
int numberCount = 0;
for (int i=0; i
("gpassword", init())
.def("getPassword", &GeneratePassword::getPassword);
}
编译命令
# python3
g++ -shared -o helloworld.so -fPIC -I/usr/include/python3.6m/ helloworld.cpp -lpython3.6m -lboost_python3
# python2
g++ -shared -o helloworld.so -fPIC -I/usr/include/python2.7/ helloworld.cpp -lpython -lboost_python
效果展示
In [2]: import gpassword
In [3]: gp = gpassword.gpassword(18) // 实例化,并且设置生成多少位的密码
In [4]: gp.getPassword() // 生成密码
Out[4]: 'fa37JncCHryDsbzayy'
写的有点low,如有好的意见请不吝赐教,非常感谢。
网站标题:C++编写Python扩展(密码生成器)
文章起源:http://myzitong.com/article/ghcgse.html