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