python密码生成器的3种方法
生活随笔
收集整理的這篇文章主要介紹了
python密码生成器的3种方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
32-47:空格 ! " # $ % & ' ( ) * + , - . /
48-57:0-9
58-64:: ; < = > ? @
65-90:A-Z
91-96:[ 反斜杠 ] ^ _ `
97-122:a-z
123-126:{ | } ~
這個方法比較方便快捷,但是比較消耗內存,內存不大,會內存溢出
def products(length=5):chars=''.join([chr(i) for i in range(32,127)])for i in itertools.product(chars, repeat = length):string = ''.join(i)print(string)這個方法運行速度快,但是容易遺漏
def random_str(code_len=5):chars=''.join([chr(i) for i in range(32,127)])code_count=int(comb(len(chars),code_len))count= 0while count < code_count:checkcode= ''for i in range(code_len):j=random.randint(0,len(chars)-1)checkcode+= chars[j]print(checkcode)count+=1這個方法綜合前兩種,內存消耗不大,運行速度一般
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def sub_list(length=5):chars = [chr(j) for i in range(length) for j in range(32,127)]for i in range(1 << len(chars)):combo_list = []for j in range(len(chars)):if i & (1 << j):combo_list.append(chars[j])sub_list_len = len(combo_list)if sub_list_len != length:continueelse:sub_str = ''.join(combo_list)print(sub_str)def main():products()random_str()sub_list()if __name__ == '__main__':main()總結
以上是生活随笔為你收集整理的python密码生成器的3种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python判断一个字符串是否包含某个指
- 下一篇: python 判断是否是润年及函数封装的