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://bzwzjz.com/article/ghcgse.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 营销型网站建设 高端网站建设 定制网站建设 上市集团网站建设 泸州网站建设 四川成都网站制作 网站建设方案 成都网站建设公司 成都网站制作 成都网站建设 成都网站制作 外贸网站建设 app网站建设 成都企业网站设计 成都网站建设 网站制作 成都网站建设 成都网站建设 成都营销网站建设 专业网站设计 网站建设推广 重庆网站制作