python-base64編碼與解碼

base64編碼原理:ui

例如:編碼

實例一:url

#-*- coding: UTF-8 -*-

__author__ = '007'
__date__ = '2015/12/23'


import base64


code = "aGV5LOatpOWkhOWtmOWcqGpvb21sYea8j+a0nu+8jOivt+WPiuaXtuiBlOezuyB4eHh4eHhAMTI2LmNvbSDkv67lpI3mraTmvI/mtJ4="

print type(code)
cc = base64.decodestring(code)
print cc

u = u'hey,此處存在joomla漏洞,請及時聯繫 xxxxxx@126.com 修復此漏洞'
print type(u)
d = u.encode('utf8')
print type(d)

dd = base64.encodestring(d)
print dd

運行結果:spa

<type 'str'>
hey,此處存在joomla漏洞,請及時聯繫 xxxxxx@126.com 修復此漏洞
<type 'unicode'>
<type 'str'>
aGV5LOatpOWkhOWtmOWcqGpvb21sYea8j+a0nu+8jOivt+WPiuaXtuiBlOezuyB4eHh4eHhAMTI2LmNvbSDkv67lpI3mraTmvI/mtJ4=

 

實例二:code

#-*- coding: UTF-8 -*-

__author__ = '007'
__date__ = '2016/2/15'

import base64

#對字符串進行base64編碼
def str2base64():
    str_encode = raw_input("請輸入字符串:")
    en = base64.encodestring(str_encode)
    print en
#對字符串進行base64解碼
def base64tostr():
    str_decode = raw_input("請輸入base64串:")
    de = base64.decodestring(str_decode)
    print de
#對url字符串進行base64編碼
def url2base64():
    url_encode = raw_input("請輸入URL字符串:")
    en = base64.urlsafe_b64encode(url_encode)
    print en
#對url字符串進行base64解碼
def base64tourl():
    url_decode = raw_input("請輸入url的base64串:")
    de = base64.urlsafe_b64decode(url_decode)
    print de

#對文件裏面的字符串進行base64編碼
def file_base64_en():
    f1 = raw_input("請輸入您要讀取的文件:")
    f2 = raw_input("請輸入您要寫入的文件:")
    rf = open(f1,'r')
    lines = rf.readlines()
    wf = open(f2,'w')
    for line in lines:
        word = line.strip()
        en = base64.encodestring(word)
        #print en
        wf.write(word+"的base64編碼結果是:"+en)
        #wf.write("\n")
    rf.close()
    wf.close()
#對文件裏面的字符串進行base64解碼
def file_base64_de():
    f1 = raw_input("請輸入您要讀取的文件:")
    f2 = raw_input("請輸入您要寫入的文件:")
    rf = open(f1,'r')
    lines = rf.readlines()
    wf = open(f2,'w')
    for line in lines:
        de = base64.decodestring(line)
        #print de
        wf.write(line+"的base64解碼結果是:"+de)
        wf.write("\n")
    rf.close()
    wf.close()

def main():
    print u"a.字符串"
    print u"b.url字符串"
    print u"c.讀取文件操做"
    ch = raw_input("請選擇操做數據類型:")

    if ch == "a":
        print u"1.base64編碼"
        print u"2.base64解碼"

        choice = raw_input("請選擇編碼或解碼:")
        if choice == "1":
            str2base64()
        elif choice == "2":
            base64tostr()
        else:
            print u"您的選擇不是合理的編碼或解碼!"
    elif ch == "b":
        print u"1.base64編碼"
        print u"2.base64解碼"

        choice = raw_input("請選擇編碼或解碼:")
        if choice == "1":
            url2base64()
        elif choice == "2":
            base64tourl()
        else:
            print u"您的選擇不是合理的編碼或解碼!"
    elif ch == "c":
        print u"1.base64編碼"
        print u"2.base64解碼"

        choice = raw_input("請選擇編碼或解碼:")
        if choice == "1":
            file_base64_en()
        elif choice == "2":
            file_base64_de()
        else:
            print u"您的選擇不是合理的編碼或解碼!"
    else:
        print u"未找到您所須要編碼或解碼的數據類型!"


if __name__ == "__main__":
    main()
相關文章
相關標籤/搜索