V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
V2EX  ›  Python

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

  •  
  •   mochanight · 6 天前 · 1493 次点击
    比如:
    将数字 0 转换为 30
    数字 2 转换为 3F
    数字 3 转换为 3D
    数字 4 转换为 35

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

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