玩蛇网提供最新Python编程技术信息以及Python资源下载!

一个简易的hash加密小工具源码

python 培训

一直喜欢密码相关的加密解密工作,感觉每破一个程序的时候,很有成就感。这是一个简易的hash加密小工具源码,是我在网络上搜集来的,感觉作者写的很有创意,很多地方值得我去学习。想让更多的朋友们看到,所以贴在玩蛇网python学习平台这里。

#!/usr/bin/env python
#-*-encoding = utf-8-*-
# hasher.py

import sys
import hashlib
import linecache

def alglist():
    print """
    (1)MD5     (4)SHA256
    (2)SHA1    (5)SHA384
    (3)SHA224  (6)SHA512 """

class hasher(object):
    def single(self):
        try:
            alglist()
            alg = raw_input("Select an algorithm:")
            functions = {"1":hashlib.md5,"2":hashlib.sha1,'3':hashlib.sha224,'4':hashlib.sha256,'5':hashlib.sha384,'6':hashlib.sha512}
            if alg in functions.keys():
                hashob = functions[alg]()
                outfile = raw_input("Enter output file:")
                while 1:
                    word = raw_input("Enter string: ")
                    hashob.update(word)
                    hashword = hashob.hexdigest()
                    hashlst = open(outfile, 'a+')
                    hashlst.write(hashword + '\n')
                    print '[*] Output successful...'
                    raw_input("[*] Press Return to continue OR 'Ctrl-C' to Quit...")
            else:
                alglist()
                print "[*] Your input not found..."
                sys.exit(1)

        except KeyboardInterrupt:
#            main()
            raise
        except IOError:
            print "[*] Input file not found..."
            sys.exit(1)
#            hasher.single()
    def hashlist(self):
        try:
            alglist()
            alg = raw_input("Select an algorithm:")
            functions = {'1':hashlib.md5, '2':hashlib.sha1, '3':hashlib.sha224, '4':hashlib.sha256, '5':hashlib.sha384, '6':hashlib.sha512}
            if alg in functions.keys():
                hashob = functions[alg]()
                infile = raw_input("Enter input file:")
                outfile = raw_input("Enter output file:")
                count = len(open(infile).readlines())
                i = 1
                while i <= count + 1:
                    word = linecache.getline(infile,i)
                    hashob.update(word)
                    hashword = hashob.hexdigest()
                    outlist = open(outfile,'a++')
                    outlist.write(hashword+'\n')
                    i += 1
                print "[*]Output successful..."
                raw_input("Press enter to return to the main menu OR 'Ctrl-C' to Quit...")
                main()
            else:
                alglist()
                print "[*] Your input not found..."                                  
                sys.exit(1)
        except KeyboardInterrupt:
#            main()
            raise
        except IOError:
            print "[*] Input file not found..."
            sys.exit(1)
#            main()
    
def main():
    try:
        print """
        O))                      O))                                 
        O))        O))     O)))) O))        O))      O))    O)) O))  
        O) O)    O))  O)) O))    O) O)    O))  O)) O)   O))  O))  O))
        O))  O))O))   O))   O))) O))  O))O))   O))O))))) O)) O))  O))
        O)   O))O))   O))     O))O)   O)) O))  O))O)         O))  O))
        O))  O))  O)) O)))O)0)O))O))  O))     O))   O))))   O)))  O))
                                          O))        


        (1) Single Mode - Enter strings to be hashed one by one
        (2) List Mode - Input a text file of strings to be hashed"""

        mode = raw_input("Select a mode:")
        if mode == '1':
            hasher.single()
        elif mode == '2':
            hasher.hashlist()
        else:
            main()
    except KeyboardInterrupt:
        print "\n[*] Exiting..."
        sys.exit(1)


if __name__ == "__main__":
    hasher = hasher()
    main()
#www.iplaypython.com

更多加密解密相关文章推荐:
Python实现DES加密算法源码例详解
Python迅雷快车旋风地址加密解密

玩蛇网原创,转载请注明文章出处和来源网址:http://www.iplaypython.com/code/security/se2292.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

玩蛇网Python新手QQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
文章发布日期:2016-04-21 14:34 玩蛇网 www.iplaypython.com

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
相关文章推荐
别人正在看
特别推荐
去顶部去底部