推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
mochanight
V2EX  ›  Python

求助,一串字符串为数字,需要将每个数字进行加密,怎么简单点?

  •  
  •   mochanight · Jan 13, 2018 · 5105 views
    This topic created in 3072 days ago, the information mentioned may be changed or developed.
    比如:
    将数字 0 转换为 30
    数字 2 转换为 3F
    数字 3 转换为 3D
    数字 4 转换为 35

    a= '0234'
    怎么才能 a = '303F3D35'
    29 replies    2018-01-15 11:52:52 +08:00
    blless
        1
    blless  
       Jan 13, 2018 via iPhone   ❤️ 1
    translate
    mochanight
        2
    mochanight  
    OP
       Jan 13, 2018
    小白一个 想到的就是 a[-1] 一个个的 if 替换 不知道有什么简单的方法吗
    blless
        3
    blless  
       Jan 13, 2018 via iPhone   ❤️ 1
    额…好像不行 translate 是单个字符映射
    blless
        4
    blless  
       Jan 13, 2018 via iPhone   ❤️ 1
    直接用字典吧…
    mochanight
        5
    mochanight  
    OP
       Jan 13, 2018
    @blless 求例子
    blless
        6
    blless  
       Jan 13, 2018 via iPhone   ❤️ 2
    我用手机 只能大概写一下,
    strmap ={"0":"30",…}
    src ="0234"
    str.join([strmap[x] for x in str])
    好久没写 有点忘了 手机敲代码可真难受
    Hyponet
        7
    Hyponet  
       Jan 13, 2018   ❤️ 1
    num_map = {
    "0": "30",
    "2": "3F",
    "3": "3D",
    "4": "35",
    }
    a = '0234'
    result = "".join([num_map[n] for n in a])

    虽然蠢,但有效 /w\
    MonoLogueChi
        8
    MonoLogueChi  
       Jan 13, 2018 via Android
    你是要求能加密,还是加密之后还可以再解密。如果不需要解密就很简单了,利用已有的加密算法很容易实现的,比如我最近设计的一个登录系统用了 md5 加密。如果需要可以解密的话,可以自己建立一套运算规则,比如利用 ascii 码做一个简单的运算。但是自己建立的规则安全性不知道怎么样。
    vela
        9
    vela  
       Jan 13, 2018
    如果能映射到 uint64 空间,建议先做跳码再转换。
    awfe
        10
    awfe  
       Jan 13, 2018
    既然是都是数字,放数组里吧,数字直接当索引
    woscaizi
        11
    woscaizi  
       Jan 13, 2018 via iPhone
    建立数字和加密字符串的对应 map。
    字符串转字符数组。
    循环,利用查表法,拼接新的加密串。
    不过应该针对所有的字符串都循环相同的次数。
    比如人为指定循环次数为 100 次。
    这样每次加密用的时间都相同。
    draguo
        12
    draguo  
       Jan 13, 2018
    liuminghao233
        13
    liuminghao233  
       Jan 13, 2018 via iPhone
    一个 for 不就搞定了吗
    s7ven
        14
    s7ven  
       Jan 13, 2018 via Android
    哈夫曼,还能压缩
    WordTian
        15
    WordTian  
       Jan 13, 2018 via iPhone
    最简单的方法就是做个映射集合,然后对要加密的字符循环替换。。。
    akira
        16
    akira  
       Jan 14, 2018
    @MonoLogueChi 自己设定的规则,除非是你数学很牛逼,不然一般都不如现成的
    geelaw
        17
    geelaw  
       Jan 14, 2018 via iPhone
    这是哪门子加密呃,几乎上面每一层我都没看出来这玩意儿和加密的关系
    rogwan
        18
    rogwan  
       Jan 14, 2018 via Android   ❤️ 1
    hashids.org 最省事
    580a388da131
        19
    580a388da131  
       Jan 14, 2018
    没看明白究竟问题在哪
    难道是想问 字符串怎么打散然后循环替换?
    uolcano
        20
    uolcano  
       Jan 14, 2018
    自己弄着玩就算了,真要加密是要经得起密码分析(cryptanalysis)的。一般都是用现有的算法,比如 DES/AES/ECC/RSA,你自己搞出来一套是很难的。
    jxie0755
        21
    jxie0755  
       Jan 14, 2018
    str.maketrans(x[, y[, z]])
    str.translate
    cbiqih
        22
    cbiqih  
       Jan 14, 2018
    temp = {'0': '30', '2': '3F', '3': '3D', '4': '35'}
    a = '0234'
    print(''.join(map(temp.get, a)))
    FeiyuWang2017
        23
    FeiyuWang2017  
       Jan 14, 2018 via Android
    这不就是那个 Python challenge 第二题吗
    run2
        25
    run2  
       Jan 14, 2018
    @MonoLogueChi #8 噗~“设计” “ md5 加密”
    好高级啊
    MonoLogueChi
        26
    MonoLogueChi  
       Jan 14, 2018 via Android
    @sobigfish 这个东西并不高级啊,你想说啥就直说
    blless
        27
    blless  
       Jan 14, 2018
    @cbiqih 你这个 python3 不一定能用吧 python3 map 出来是一个迭代器
    sampeng
        28
    sampeng  
       Jan 15, 2018
    这和加密什么关系。。。。。加密肯定用已经成熟的加密方案。否则就是自己找死
    sampeng
        29
    sampeng  
       Jan 15, 2018
    ps。。md5 不是加密。。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3009 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 117ms · UTC 05:10 · PVG 13:10 · LAX 22:10 · JFK 01:10
    ♥ Do have faith in what you're doing.