Python实现随机密码生成的示例代码分享

LiuSha 2024-07-11 11:28:40编程技术
251

在当今数字化时代,密码的安全性对于保护个人信息和隐私至关重要。使用强密码可以有效防止账户被黑客入侵。然而,手动创建复杂且难以记忆的密码对许多人来说是一个挑战。幸运的是,Python编程语言提供了一种简便的方式来生成随机且安全的密码。本文将介绍如何使用Python编写代码来生成随机密码,并提供一个实用的示例代码供读者参考。

随机密码生成器.jpg

生成随机密码这件事情用python来干确实相当的方便,优美的string方法加上choice简直是绝配
make_password.py

###简单几行代码执行即可生成记不住的字符串###

$ python make_passwd.py
 DLrw9EiT
 Qs4Wm84q
 RQwl4L2L
 u9g0LgwW
 jHPtYdyU
 ...
$ python make_passwd.py
 DLrw9EiT
 Qs4Wm84q
 RQwl4L2L
 u9g0LgwW
 jHPtYdyU
 ...

代码如下——注释比代码长

#!/usr/bin/python
 #--coding:utf-8--#
 #-------------------------------------------------------------------------------
 # Name: make_passwd
 #
 # Author: LiuSha
 #
 # Created: 28/12/2014
 # Copyright: (c) WDZJ-SA 2014
 #-------------------------------------------------------------------------------
 from random import choice
 import string
def Makepass(length=8, chars=string.letters+string.digits):
 return ''.join([choice(chars) for i in range(length)])
if __name__ == '__main__':
 for i in range(10):
 print Makepass()
##下例基本上就是这个小脚本的所有工作核心了,使用random模块的choice方法取string模块生成的字符串##
 >>> string.letters
 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
 >>> string.digits
 '0123456789'
>>> choice(string.digits)
 '4'
 >>> choice(string.letters)
 'T'
##有关生成器可参考:http://www.ipython.me/python/python-generator.html##

#!/usr/bin/python
 #--coding:utf-8--#
 #-------------------------------------------------------------------------------
 # Name: make_passwd
 #
 # Author: LiuSha
 #
 # Created: 28/12/2014
 # Copyright: (c) WDZJ-SA 2014
 #-------------------------------------------------------------------------------
 from random import choice
 import string
def Makepass(length=8, chars=string.letters+string.digits):
 return ''.join([choice(chars) for i in range(length)])
if __name__ == '__main__':
 for i in range(10):
 print Makepass()
##下例基本上就是这个小脚本的所有工作核心了,使用random模块的choice方法取string模块生成的字符串##
 >>> string.letters
 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
 >>> string.digits
 '0123456789'
>>> choice(string.digits)
 '4'
 >>> choice(string.letters)
 'T'
##有关生成器可参考:http://www.ipython.me/python/python-generator.html##

 
生成一些人似乎能好记一些的密码(Qs4Wm84q这种密码似乎除了复制粘贴没有别的选择,话说前年我使用shell生成的类似的密码给ldap做默认密码,我当时公司就真有员工把这样的密码背下来了,现在想想真心是厉害~~~)。

##这样看起来是比上面的好记一点了吧,但需要提供一个字典文件##

$ python make_dictpass.py 1 8 1
 ipythosd
$ python make_dictpass.py
 nahontchen
 chenyibfeo
 ipythoniue
 coreostche
 ...

$ python make_dictpass.py 1 8 1
 ipythosd
$ python make_dictpass.py
 nahontchen
 chenyibfeo
 ipythoniue
 coreostche
 ...

代码如下

#!/usr/bin/python
 #--coding:utf-8--#
 #-------------------------------------------------------------------------------
 # Name: make_dictpass
 #
 # Author: LiuSha
 #
 # Created: 28/12/2014
 # Copyright: (c) WDZJ-SA 2014
 #-------------------------------------------------------------------------------
 import random
 import string
class passwd():
 data = open('./word.txt').read().lower()
 def renew(self, n, maxmem=3):
 self.chars = []
 for i in range(n):
 randspot = random.randrange(len(self.data))
 self.data = self.data[randspot:] + self.data[:randspot]
 where = -1
 locate = ''.join(self.chars[-maxmem:])
 while where < 0 and locate: where = self.data.find(locate) locate = locate[1:] c = self.data[where+len(locate)+1] if not c.islower(): c = random.choice(string.lowercase) self.chars.append(c) def __str__(self): return ''.join(self.chars) if __name__ == '__main__': import sys ##如果带参数的话可以定义生成密码的次数,长度,追溯记录## if len(sys.argv) > 1:
 dopass = int(sys.argv[1])
 else:
 dopass = 8
 if len(sys.argv) > 2:
 length = int(sys.argv[2])
 else:
 length = 10
 if len(sys.argv) > 3:
 memory = int(sys.argv[3])
 else:
 memory = 3
 onepass = passwd()
 for i in range(dopass):
 onepass.renew(length,memory)
 print onepass
##字典文件(可以是各种单词的组合)##
 $ cat word.txt
 chenyi
 itchenyi
 python
 ipython
 coreos
 coreos.me
 ipython.me
#!/usr/bin/python
 #--coding:utf-8--#
 #-------------------------------------------------------------------------------
 # Name: make_dictpass
 #
 # Author: LiuSha
 #
 # Created: 28/12/2014
 # Copyright: (c) WDZJ-SA 2014
 #-------------------------------------------------------------------------------
 import random
 import string
class passwd():
 data = open('./word.txt').read().lower()
 def renew(self, n, maxmem=3):
 self.chars = []
 for i in range(n):
 randspot = random.randrange(len(self.data))
 self.data = self.data[randspot:] + self.data[:randspot]
 where = -1
 locate = ''.join(self.chars[-maxmem:])
 while where < 0 and locate: where = self.data.find(locate) locate = locate[1:] c = self.data[where+len(locate)+1] if not c.islower(): c = random.choice(string.lowercase) self.chars.append(c) def __str__(self): return ''.join(self.chars) if __name__ == '__main__': import sys ##如果带参数的话可以定义生成密码的次数,长度,追溯记录## if len(sys.argv) > 1:
 dopass = int(sys.argv[1])
 else:
 dopass = 8
 if len(sys.argv) > 2:
 length = int(sys.argv[2])
 else:
 length = 10
 if len(sys.argv) > 3:
 memory = int(sys.argv[3])
 else:
 memory = 3
 onepass = passwd()
 for i in range(dopass):
 onepass.renew(length,memory)
 print onepass
##字典文件(可以是各种单词的组合)##
 $ cat word.txt
 chenyi
 itchenyi
 python
 ipython
 coreos
 coreos.me
 ipython.me

PS:您也可使用本站的在线随机密码生成器来生成自定义位数和字符的随机密码。

总结

本文介绍了如何使用Python编写一个简单的随机密码生成器。通过这个示例代码,读者可以轻松地生成复杂且安全的密码,从而提高个人账户的安全性。我们首先介绍了所需的基本Python模块,然后逐步解释了代码的每一部分,确保读者能够理解并根据需要修改代码。希望这篇教程能够帮助大家提升密码安全性,更好地保护自己的数字资产。

随机密码 随机密码生成 Python
THE END
战地网
频繁记录吧,生活的本意是开心

相关推荐

深入解析Python图像处理中的内存泄漏问题及解决方案
随着计算机视觉和图像处理技术的不断发展,Python作为一种高效、简洁的编程语言,逐渐成为图像处理领域的首选工具。然而,在实际开发过程中,内存泄漏问题常常困扰着开发者,...
2025-02-18 编程技术
159

使用Python实现音乐播放器的示例代码
本文将向大家介绍一个使用Python实现的简易音乐播放器示例代码,通过结合tkinter图形用户界面库与pygame音乐处理库,我们将亲手打造一个功能完备、操作简便的音乐播放工具。无...
2025-02-18 编程技术
153

使用Python和PyQt6开发图片播放器(附示例代码)
随着计算机技术的飞速发展,图形用户界面(GUI)的应用程序越来越受到人们的青睐。Python作为一种高效、简洁的编程语言,结合PyQt6库,可以轻松创建功能强大的GUI应用程序。本...
2025-02-18 编程技术
146

使用Python和PyQt打造自定义文件浏览器
在现代软件开发中,图形用户界面(GUI)的应用程序越来越受到开发者的青睐。Python作为一种高效、易学的编程语言,结合PyQt这一强大的GUI库,使得开发者能够快速构建出功能丰富...
2025-02-16 编程技术
166

Python在Word文档中插入图片的三种方法解析
手动在Word中插入图片往往耗时且易出错,特别是在需要批量处理或精确控制图片位置和格式时。因此,利用编程语言如Python来自动化这一过程,不仅可以大大提高效率,还能确保文...
2025-02-14 编程技术
174

Python+OpenCV实现图片去水印的多种方法详解
在数字图像处理领域,去除图片上的水印是一个常见的需求。无论是个人用户还是企业,在使用或处理图片时,都可能遇到需要去除水印的情况。然而,由于水印的形式多样,去除水印...
2025-02-14 编程技术
172