MD5脚本总结

首先声明一下,这也是相当于给自己做了一个脚本库,可能格式会不太严谨,大家随手一看
(1)题目:小明常用密码是hash 是5bc76f3f319865431dcab801bbce47a1 现在 他只知道明文密码的前四位是xjnu
中间是66****88 后三位是ctf 请帮他算出 明文密码是啥
flag{明文}

脚本:

#coding: utf-8

import hashlib
dic = '0123456789qazwsxedcrfvtgbyhnujmikolp'
for a in dic:
  for b in dic:
    for c in dic:
	for d in dic:
               t = 'xjnu'+'66'+str(a)+str(b)+str(c)+str(d)+'88'+'ctf'
               md5 = hashlib.md5(t).hexdigest()
	       #print t
               if md5[:32] == '5bc76f3f319865431dcab801bbce47a1':
                   print t

费纳姆密码:

#--encoding:utf-8--
table = {'A':'1000001','N':'1001110',
         'B':'1000010','O':'1001111',
         'C':'1000011','P':'1010000',
         'D':'1000100','Q':'1010001',
         'E':'1000101','R':'1010010',
         'F':'1000110','S':'1010011',
         'G':'1000111','T':'1010100',
         'H':'1001000','U':'1010101',
         'I':'1001001','V':'1010110',
         'J':'1001010','W':'1010111',
         'K':'1001011','X':'1011000',
         'L':'1001100','Y':'1011001',
         'M':'1001101','Z':'1011010'}
key_list=[]  
value_list=[]  
for key,value in table.items():  
    key_list.append(key)  
    value_list.append(value)
#print key_list, value_list
def get_key_of_value(value):  
    if value in value_list:  
        get_value_index = value_list.index(value)
        #print type(key_list[get_value_index])
        return key_list[get_value_index]  
    else:  
        print "你要查询的值%s不存在" %get_value  
def how_to(a,b):
    if a in ['0','1'] and b in ['0','1']:
        if a == '1' and b == '1':
            return '0'
        elif a == '0' and b == '0':
            return '0'
        else:
            return '1'
    else:
        return 0
def bin_turn(arg):
    binstring = ''
    for i in arg:
        binstring += table[i]
    return binstring
def encrypt(plain,key):
    binkey = bin_turn(key)
    binplain = bin_turn(plain)
    chiper = ''
    if len(binplain)==len(binkey):
        for i in range(0,len(binplain)):
            chiper += how_to(binkey[i],binplain[i])
            #print
        return chiper
    else:
        return 0
def decrypt(chiper,key):
    binkey = bin_turn(key)
    plain = ''
    if len(chiper)==len(binkey):
        for i in range(0,len(chiper)):
            plain += how_to(binkey[i],chiper[i])
            #print binkey[i]
        #print plain
        return plain
    else:
        return 0  
key = 'WELCOMETOCFF'
chiper = '000000000000000000000000000000000000000000000000000101110000110001000000101000000001'
binplain = decrypt(chiper,key)
#print type(binplain)
plain = ''
for i in xrange(0,len(binplain),7):
    plain += str(get_key_of_value(binplain[i:i+7]))
print plain

以后再碰到,持续更新。。。。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JavaScript MD5是一种用于对数据进行加密的算法。通过使用MD5算法,可以将数据转化为一个128位的哈希值,以提高数据的安全性。通过引用和中的代码片段,我们可以看到在JavaScript中使用MD5算法的示例。在示例中,使用了一个名为md5.js的外部脚本库,该库提供了MD5算法的实现。然后,通过调用不同的MD5函数,可以对不同的数据进行加密,并得到相应的加密结果。这些加密结果是通过对原始数据进行哈希计算而得到的。 需要注意的是,MD5算法虽然可以增加数据的安全性,但它并不是绝对安全的。由于MD5算法的特性,存在一定的安全风险。因此,在实际使用中,我们应该综合考虑其他加密算法和安全措施,以确保数据的安全性。引用中提到MD5算法用于确保表单数据提交的安全,但是它并不是最理想的解决方案。 总结来说,JavaScript MD5是一种对数据进行加密的算法,通过对数据进行哈希计算,将数据转化为一个128位的哈希值。通过使用MD5算法,可以提高数据的安全性。然而,我们需要认识到MD5算法存在一定的安全风险,并且在实际使用中应该综合考虑其他加密算法和安全措施。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [JavaScript---MD5加密算法](https://blog.csdn.net/qq_72239654/article/details/131257386)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [JavaScript实现MD5 加密的6中方式](https://blog.csdn.net/jcmj123456/article/details/129993513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值