首页   注册   登录
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 · 2018-01-13 22:02:30 +08:00 · 2520 次点击
    这是一个创建于 367 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如:
    将数字 0 转换为 30
    数字 2 转换为 3F
    数字 3 转换为 3D
    数字 4 转换为 35

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