利用Perl生成随机复杂密码

简介:
#!/usr/bin/perl
my $characterset = 'abcdefghijkmnopqrstuvwxyz23456789ABCDEFGHIJKLMNPQRSTUVWXYZ';
#$characterset .= '~!@$%^()_{},./<>?-';
#$characterset .= "~!@$%^&*()_+|{},./<>?-=\";
#$characterset .= '~!@#$%^*()_|{},./<>?-=\';
$characterset .= '@#%^*()_=-~,.?;:|';
my $mininum = 8;
my $maxinum = 10;
sub MakePassword
{
my ($composition, $lowlength, $highlength) = @_;
return '' unless $composition;
my @p = split //, $composition;
my $arraylength = @p;
$lowlength = 7 if $lowlength < 1;
$highlength =7 if $highlength < 1;
if ($lowlength > $highlength) {
($highlength, $lowlength) = ($lowlength, $highlength);
}
my $length = int(rand($highlength - $lowlength + 1));
$length += $lowlength;
my $password = '';
for (1..$length) {
my $i = int(rand($arraylength));
$password .= $p[$i];
}
return $password;
}
my $password = MakePassword ($characterset, $mininum, $maxinum);
print "$password\n";



本文转自叶金荣51CTO博客,原文链接:http://blog.51cto.com/imysql/1879728,如需转载请自行联系原作者

相关文章
|
编译器 Linux C语言
QT编译安装QtMqtt子模块,WIN平台
QT编译安装QtMqtt子模块,WIN平台
1069 0
|
4月前
|
机器学习/深度学习 人工智能 编解码
抽烟行为检测数据集(约3000张图片已标注)| YOLO训练数据集 AI视觉检测
本数据集含约3000张多场景抽烟行为图像,YOLO格式标注(单类“smoke”),覆盖室内外、不同光照与人群姿态,支持YOLOv5/v8直接训练。适用于智慧安防、禁烟监管及AI行为识别研究,助力实时检测与自动告警。
抽烟行为检测数据集(约3000张图片已标注)| YOLO训练数据集 AI视觉检测
|
6月前
|
网络协议 安全 C#
C# 实现 Modbus TCP 通信
C# 实现 Modbus TCP 通信
1112 4
|
9月前
|
芯片
基于模拟I2C协议驱动SD3078时钟芯片
基于模拟I2C协议驱动SD3078时钟芯片
|
4月前
|
机器学习/深度学习 算法 数据可视化
OFDM系统信道估计MATLAB实现(LS、MMSE、DCT、LRMMSE方法)
OFDM系统信道估计MATLAB实现(LS、MMSE、DCT、LRMMSE方法)
|
10月前
|
监控 Devops 持续交付
从 DevOps 文化到以平台为中心的交付
DevOps 工程师与平台工程师在软件交付中各司其职。DevOps 强调开发与运维协作,推动自动化与文化变革;平台工程则聚焦构建自助式内部开发者平台,提升开发效率与一致性。两者相辅相成,共同加速高质量软件交付。
407 1
|
iOS开发 MacOS
MAC OS更新系统后IDEA中的SVN报错无法使用
MAC OS更新系统后IDEA中的SVN报错无法使用
|
JavaScript API 开发工具
HarmonyOS NEXT实战:日志工具
本文介绍了在HarmonyOS Next应用开发中,如何封装一个简单易用的日志工具LoggerKit。通过使用系统提供的HiLog API,开发者可以灵活输出不同级别的日志信息(DEBUG、INFO、WARN、ERROR、FATAL),用于分析应用运行状态和调试逻辑问题。文章详细说明了日志级别、参数配置及使用注意事项,并提供了完整的TypeScript封装示例代码,便于实际项目集成与应用调试。
287 0
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
775 2
|
人工智能 自然语言处理 Java
30分钟速成:IntelliJ IDEA 2024下载安装与多语言开发环境配置手册
IntelliJ IDEA是Java/Kotlin开发领域的旗舰级IDE,最新版本实现了AI全栈辅助、量子计算插件和多语言互操作三大技术突破。AI辅助提升代码生成与性能优化准确率40%,量子计算插件支持1024量子位模拟,多语言混合调试性能提升300%。系统要求包括i5以上CPU、8GB内存及Windows 7+等。安装流程涵盖获取Ultimate版、配置启动器及性能优化设置。核心功能包括AI编码助手和多语言开发环境配置。提供量子算法开发和AI代码审查实战案例,并附故障排查指南和学习资源。