在最近的开发中,遇到了一个问题,发现Python没有一个生成指定复杂度密码的模块(反正我没有找到),需要自己写一段生成随机数的代码来生成密码,因此我就用C++自己写的一个扩展模块。
创新互联公司致力于互联网品牌建设与网络营销,包括成都做网站、网站制作、成都外贸网站建设、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。创新互联公司为不同类型的客户提供良好的互联网应用定制及解决方案,创新互联公司核心团队十多年专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。模块的要求:
上面的要求可以自己定制,比如说加上特殊字符,都是可以的,只要稍稍修改下代码即可。
头文件
//
// 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,如有好的意见请不吝赐教,非常感谢。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。