HACK80

我们很年轻,但我们有信念、有梦想!

我们坚信只有今天付出了,才有机会看到明天的太阳!
现在!加入我们,给你一个气氛优秀的技术圈子

作者: EvilGod
查看: 141|回复: 0

more +随机图赏Gallery

2017年中旬WEB渗透系列课程-27HASH提权2017年中旬WEB渗透系列课程-27HASH提权
2017年中旬WEB渗透系列课程-23提权认识2017年中旬WEB渗透系列课程-23提权认识
X站神器-灰长给力-X站神器-灰长给力-
2017年中旬WEB渗透系列课程-11注入的其他姿势2017年中旬WEB渗透系列课程-11注入的其他姿势
2017年中旬WEB渗透系列课程-10基于提交方式注入的分析2017年中旬WEB渗透系列课程-10基于提交方式注入的分析
2017年中旬WEB渗透系列课程-09Mysql注入跨库2017年中旬WEB渗透系列课程-09Mysql注入跨库
2017年中旬WEB渗透系列课程-08Mysql注入读写2017年中旬WEB渗透系列课程-08Mysql注入读写
2017年中旬WEB渗透系列课程-07Mysql常规注入2017年中旬WEB渗透系列课程-07Mysql常规注入
2017年中旬WEB渗透系列课程-06Mysql注入分析2017年中旬WEB渗透系列课程-06Mysql注入分析
2017年中旬WEB渗透系列课程-05Access注入分析2017年中旬WEB渗透系列课程-05Access注入分析

python代码段

[复制链接]
EvilGod 发表于 2017-12-5 17:11:26 | 显示全部楼层 |阅读模式
查看: 141|回复: 0

马上注册,加入HACK80!与我们一起交流。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
凯撒加密,摩斯电码,栅栏密码,base家族混合编解码。。。

栅栏密码加解密单行版本
  1. railFence = lambda s: [[i, ''.join([s[k * i + j] for j in range(i) for k in range(len(s) / i)])] for i in range(1, len(s)) if not len(s) % i]
  2. print railFence('hello world , 2017 ! ')
复制代码

正常版本
  1. def railFence(s):
  2.     ll = len(s)
  3.     res = dict()
  4.     for i in range(1, ll):
  5.         r = ''
  6.         if ll % i == 0:
  7.             for j in range(i):
  8.                 for k in range(ll / i):
  9.                     r += s[k * i + j]
  10.             res[i] = r
  11.     return res
  12. # test
  13. print railFence('hello world , 2017 ! ')
  14. # {1: 'hello world , 2017 ! ', 3: 'hlwl,0 eood 1!l r 27 ', 7: 'ho2er0ll1ld7o   ,!w  '}
复制代码

凯撒密码加解密单行版本
  1. def caesar(s): return [[off, ''.join([chr((ord(i) - 97 + off) % 26 + 97) if 'a' <= i <= 'z' else chr((ord(i) - 65 + off) % 26 + 65) if 'A' <= i <= 'Z' else i for i in str(s)])] for off in range(26)]
  2. print caesar('h3llo')
复制代码

正常版本
  1. def caesar(s):
  2.     cycle = 26
  3.     res = []
  4.     for offset in range(26):
  5.         r = ''
  6.         for i in str(s):
  7.             if 'a' <= i <= 'z':
  8.                 r += chr((ord(i) - ord('a') + offset) % cycle + ord('a'))
  9.             elif 'A' <= i <= 'Z':
  10.                 r += chr((ord(i) - ord('A') + offset) % cycle + ord('A'))
  11.             else:
  12.                 r += i
  13.         res.append([offset, r])
  14.     return res
  15. # test
  16. print caesar('h3llo')
  17. #[  [0, 'h3llo'], [1, 'i3mmp'], [2, 'j3nnq'], [3, 'k3oor'], [4, 'l3pps'], [5, 'm3qqt'], [6, 'n3rru'], [7, 'o3ssv'],
  18. #   [8, 'p3ttw'], [9, 'q3uux'], [10, 'r3vvy'], [11, 's3wwz'], [12, 't3xxa'], [13, 'u3yyb'], [14, 'v3zzc'],
  19. #   [15, 'w3aad'], [16, 'x3bbe'], [17, 'y3ccf'], [18, 'z3ddg'], [19, 'a3eeh'], [20, 'b3ffi'], [21, 'c3ggj'],
  20. #   [22, 'd3hhk'], [23, 'e3iil'], [24, 'f3jjm'], [25, 'g3kkn']]
复制代码

莫尔斯电码加解密
  1. # by https://findneo.github.io/
  2. import re
  3. def morse(s):
  4.     morseChart = ['.-',       '-...',     '-.-.',     '-..',      '.',        '..-.',     '--.',
  5.                   '....',     '..',       '.---',     '-.-',      '.-..',     '--',       '-.',
  6.                   '---',      '.--.',     '--.-',     '.-.',      '...',      '-',        '..-',
  7.                   '...-',     '.--',      '-..-',     '-.--',     '--..',     '-----',    '.----',
  8.                   '..---',    '...--',    '....-',    '.....',    '-....',    '--...',    '---..',
  9.                   '----.',    '.-.-.-',   '--..--',   '..--..',   '-....-',   '.----.',   '---...',
  10.                   '.-..-.',   '-..-.',    '.--.-.',   '-.-.-.',   '-...-',    '-.-.--',   '..--.-',
  11.                   '-.--.',    '-.--.-',   '...-..-',  '.-...',    '.-.-.',    ' ',        '*'
  12.                   ]
  13.     alphaChart = ['a',        'b',        'c',        'd',        'e',        'f',        'g',
  14.                   'h',        'i',        'j',        'k',        'l',        'm',        'n',
  15.                   'o',        'p',        'q',        'r',        's',        't',        'u',
  16.                   'v',        'w',        'x',        'y',        'z',        '0',        '1',
  17.                   '2',        '3',        '4',        '5',        '6',        '7',        '8',
  18.                   '9',        '.',        ',',        '?',        '-',        "'",        ':',
  19.                   '"',        '/',        '@',        ';',        '=',        '!',        '_',
  20.                   '(',        ')',        '
  21. [b]base64混合编码[/b][code]from base64 import *
  22. import random
  23. def baseRandomEncode(s, depth=3):
  24.     for i in xrange(depth):
  25.         s = random.choice([b64encode, b32encode, b16encode])(s)
  26.     return s
  27. print baseRandomEncode('hello world!')  # test
复制代码

base64混合解码
  1. # by https://findneo.github.io/
  2. from base64 import *
  3. import re
  4. res = []
  5. # repattern is a self-defining item.
  6. # In CTF games,flag often comes as a printable string containing  '{' and '}'.
  7. repattern = "[ -~]*{[ -~]*}[ -~]*|[ -~]*}[ -~]*{[ -~]*"
  8. def basefuzzDecode(s):
  9.     global res
  10.     for f in [b64decode, b32decode, b16decode]:
  11.         try:
  12.             t = f(s)
  13.             if re.match(repattern, t):
  14.                 res.append(t)
  15.                 return 0
  16.             else:
  17.                 basefuzzDecode(t)
  18.         except:
  19.             pass
  20.     return res
  21. print basefuzzDecode(baseRandomEncode('flag{hello ctf!}'))  # test
复制代码
  1. 本文链接: https://findneo.github.io/2017/10/python-snippets/
复制代码

,        '&',        '+',        ' ',        '#'
                  ]
    # or as a dict ->  {c[1]: c[0] for i in xrange(len(c[0]))}
    c = [morseChart, alphaChart]
    s = s.lower()
    # replace characters not in alphaChart with '#' ,which shall be '*' in
    # encoded string
    s = re.sub('[^a-z0-9.,?\-\':"/@;=!_()
  1. # by https://findneo.github.io/
  2. import re
  3. def morse(s):
  4. &nbsp;&nbsp;&nbsp; morseChart = ['.-',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '-...',&nbsp;&nbsp;&nbsp;&nbsp; '-.-.',&nbsp;&nbsp;&nbsp;&nbsp; '-..',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '..-.',&nbsp;&nbsp;&nbsp;&nbsp; '--.',
  5. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '....',&nbsp;&nbsp;&nbsp;&nbsp; '..',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.---',&nbsp;&nbsp;&nbsp;&nbsp; '-.-',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.-..',&nbsp;&nbsp;&nbsp;&nbsp; '--',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '-.',
  6. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '---',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.--.',&nbsp;&nbsp;&nbsp;&nbsp; '--.-',&nbsp;&nbsp;&nbsp;&nbsp; '.-.',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '...',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '-',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '..-',
  7. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '...-',&nbsp;&nbsp;&nbsp;&nbsp; '.--',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '-..-',&nbsp;&nbsp;&nbsp;&nbsp; '-.--',&nbsp;&nbsp;&nbsp;&nbsp; '--..',&nbsp;&nbsp;&nbsp;&nbsp; '-----',&nbsp;&nbsp;&nbsp; '.----',
  8. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '..---',&nbsp;&nbsp;&nbsp; '...--',&nbsp;&nbsp;&nbsp; '....-',&nbsp;&nbsp;&nbsp; '.....',&nbsp;&nbsp;&nbsp; '-....',&nbsp;&nbsp;&nbsp; '--...',&nbsp;&nbsp;&nbsp; '---..',
  9. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '----.',&nbsp;&nbsp;&nbsp; '.-.-.-',&nbsp;&nbsp; '--..--',&nbsp;&nbsp; '..--..',&nbsp;&nbsp; '-....-',&nbsp;&nbsp; '.----.',&nbsp;&nbsp; '---...',
  10. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.-..-.',&nbsp;&nbsp; '-..-.',&nbsp;&nbsp;&nbsp; '.--.-.',&nbsp;&nbsp; '-.-.-.',&nbsp;&nbsp; '-...-',&nbsp;&nbsp;&nbsp; '-.-.--',&nbsp;&nbsp; '..--.-',
  11. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '-.--.',&nbsp;&nbsp;&nbsp; '-.--.-',&nbsp;&nbsp; '...-..-',&nbsp; '.-...',&nbsp;&nbsp;&nbsp; '.-.-.',&nbsp;&nbsp;&nbsp; ' ',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '*'
  12. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]
  13. &nbsp;&nbsp;&nbsp; alphaChart = ['a',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'b',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'c',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'd',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'e',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'f',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'g',
  14. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'h',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'i',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'j',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'k',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'l',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'm',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'n',
  15. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'o',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'p',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'q',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'r',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 's',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 't',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'u',
  16. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'v',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'w',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'x',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'y',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'z',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '0',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '1',
  17. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '2',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '3',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '4',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '5',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '6',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '7',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '8',
  18. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '9',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ',',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '?',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '-',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "'",&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ':',
  19. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '"',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '/',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '@',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ';',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '=',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '!',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '_',
  20. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '(',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ')',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'amp;+ ]', '#', s)
  21.     # for convenience sake, I choose not to deal with space in morse.
  22.     s = re.sub('\s+', ' ', s)
  23.     m = 1  # default to decode
  24.     # if mot mismatch that condition,we are to encode.
  25.     if not re.match('[^-._ ]', s):
  26.         # occasionally we meet [ ._]+ instead of [ .-]+
  27.         s = s.replace('_', '-')
  28.         s = re.split(' ', s)
  29.         m = 0  # we are  to encode by morse
  30.     r = []
  31.     # list().extend(foo) returns None so we use 'or r'
  32.     return (m * ' ').join(r.extend([c[1 - m][c[m].index(i)] for i in s]) or r)
  33. # test
  34. print morse('Hello word,2017!')
  35. print morse('.... . .-.. .-.. ---   .-- --- .-. -.. --..-- ..--- ----- .---- --... -.-.--')
复制代码

base64混合编码
  1. from base64 import *
  2. import random
  3. def baseRandomEncode(s, depth=3):
  4. &nbsp;&nbsp;&nbsp; for i in xrange(depth):
  5. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = random.choice([b64encode, b32encode, b16encode])(s)
  6. &nbsp;&nbsp;&nbsp; return s
  7. print baseRandomEncode('hello world!')&nbsp; # test
复制代码

base64混合解码
  1. # by https://findneo.github.io/
  2. from base64 import *
  3. import re
  4. res = []
  5. # repattern is a self-defining item.
  6. # In CTF games,flag often comes as a printable string containing&nbsp; '{' and '}'.
  7. repattern = "[ -~]*{[ -~]*}[ -~]*|[ -~]*}[ -~]*{[ -~]*"
  8. def basefuzzDecode(s):
  9. &nbsp;&nbsp;&nbsp; global res
  10. &nbsp;&nbsp;&nbsp; for f in [b64decode, b32decode, b16decode]:
  11. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try:
  12. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t = f(s)
  13. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if re.match(repattern, t):
  14. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; res.append(t)
  15. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0
  16. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else:
  17. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; basefuzzDecode(t)
  18. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; except:
  19. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pass
  20. &nbsp;&nbsp;&nbsp; return res
  21. print basefuzzDecode(baseRandomEncode('flag{hello ctf!}'))&nbsp; # test
复制代码
  1. &nbsp;本文链接: https://findneo.github.io/2017/10/python-snippets/
复制代码

,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&amp;',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '+',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' ',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '#'
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]
&nbsp;&nbsp;&nbsp; # or as a dict -&gt;&nbsp; {c[1]: c[0] for i in xrange(len(c[0]))}
&nbsp;&nbsp;&nbsp; c = [morseChart, alphaChart]
&nbsp;&nbsp;&nbsp; s = s.lower()
&nbsp;&nbsp;&nbsp; # replace characters not in alphaChart with '#' ,which shall be '*' in
&nbsp;&nbsp;&nbsp; # encoded string
&nbsp;&nbsp;&nbsp; s = re.sub('[^a-z0-9.,?\-\':"/@;=!_()[        DISCUZ_CODE_38        ]amp;+ ]', '#', s)
&nbsp;&nbsp;&nbsp; # for convenience sake, I choose not to deal with space in morse.
&nbsp;&nbsp;&nbsp; s = re.sub('\s+', ' ', s)
&nbsp;&nbsp;&nbsp; m = 1&nbsp; # default to decode
&nbsp;&nbsp;&nbsp; # if mot mismatch that condition,we are to encode.
&nbsp;&nbsp;&nbsp; if not re.match('[^-._ ]', s):
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # occasionally we meet [ ._]+ instead of [ .-]+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = s.replace('_', '-')
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = re.split(' ', s)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m = 0&nbsp; # we are&nbsp; to encode by morse
&nbsp;&nbsp;&nbsp; r = []
&nbsp;&nbsp;&nbsp; # list().extend(foo) returns None so we use 'or r'
&nbsp;&nbsp;&nbsp; return (m * ' ').join(r.extend([c[1 - m][c[m].index(i)] for i in s]) or r)
# test
print morse('Hello word,2017!')
print morse('.... . .-.. .-.. ---&nbsp;&nbsp; .-- --- .-. -.. --..-- ..--- ----- .---- --... -.-.--')
[/code]amp;+ ]', '#', s)
    # for convenience sake, I choose not to deal with space in morse.
    s = re.sub('\s+', ' ', s)
    m = 1  # default to decode
    # if mot mismatch that condition,we are to encode.
    if not re.match('[^-._ ]', s):
        # occasionally we meet [ ._]+ instead of [ .-]+
        s = s.replace('_', '-')
        s = re.split(' ', s)
        m = 0  # we are  to encode by morse
    r = []
    # list().extend(foo) returns None so we use 'or r'
    return (m * ' ').join(r.extend([c[1 - m][c[m].index(i)] for i in s]) or r)
# test
print morse('Hello word,2017!')
print morse('.... . .-.. .-.. ---   .-- --- .-. -.. --..-- ..--- ----- .---- --... -.-.--')
[/code]
base64混合编码[        DISCUZ_CODE_39        ]
base64混合解码[        DISCUZ_CODE_40        ]
[        DISCUZ_CODE_41        ]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|HACK80 ( 沪ICP备15007512号 )

GMT+8, 2017-12-15 12:24 , Processed in 0.081556 second(s), 24 queries .

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.