V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ericgui
V2EX  ›  程序员

有什么样常用的可逆加密算法?

  •  
  •   ericgui · 2019-01-26 09:02:58 +08:00 · 20673 次点击
    这是一个创建于 2128 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如说, 我有一段字符串,加上$key, 就出来一段新的字符串,然后我拿到这串字符串,再有这个同样的$key,就得到解密的字符串。

    似乎 md5 不是的

    69 条回复    2019-01-29 17:13:27 +08:00
    lhx2008
        1
    lhx2008  
       2019-01-26 09:07:00 +08:00 via Android
    对称加密算法,有很多,但是常用的就看语言有没有相应的轮子
    fyibmsd
        2
    fyibmsd  
       2019-01-26 09:07:27 +08:00 via iPhone
    xxtea
    cc85060
        3
    cc85060  
       2019-01-26 09:10:16 +08:00
    aes
    beiyu
        4
    beiyu  
       2019-01-26 09:10:37 +08:00
    aes+1 是比较常用的
    hackyuan
        5
    hackyuan  
       2019-01-26 09:12:07 +08:00 via Android
    MD5 消息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个 128 位的散列值,用于确保信息传输完整一致。MD5 由美国密码学家罗纳德·李维斯特设计,于 1992 年公开,用以取代 MD4 算法。这套算法的程序在 RFC 1321 中被加以规范。 将数据运算变为另一固定长度值,是散列算法的基础原理。 维基百科
    msg7086
        6
    msg7086  
       2019-01-26 09:12:19 +08:00   ❤️ 6
    加密都是可逆的。
    md5 不是加密算法。
    Betsy
        7
    Betsy  
       2019-01-26 09:12:28 +08:00 via iPhone
    加密算法均可逆,而且 md5 并不是加密算法...
    testcaoy7
        8
    testcaoy7  
       2019-01-26 09:12:34 +08:00
    分组加密算法:AES ( Rijndael )、TwoFish
    流式加密算法:Salsa20、ChaCha20
    thfurior
        9
    thfurior  
       2019-01-26 09:12:44 +08:00 via Android
    des aes 国密 sm 系列
    billwsy
        10
    billwsy  
       2019-01-26 09:12:49 +08:00
    加密算法都是可逆的,md5 是摘要算法。
    t6attack
        11
    t6attack  
       2019-01-26 09:14:14 +08:00
    如果要 php 的,推荐 discuz 里的 authcode()
    chinvo
        12
    chinvo  
       2019-01-26 09:14:32 +08:00
    加密都是可逆的

    摘要都是不可逆的
    Kirscheis
        13
    Kirscheis  
       2019-01-26 09:15:18 +08:00 via Android
    常用 aes 或者某些椭圆算法,一般来说无脑 aes 即可,硬件支持比较好。

    不过加密算法一般输入输出不是字符串,而是 binary,你需要自己编码解码一下。
    baicheng10
        14
    baicheng10  
       2019-01-26 09:17:13 +08:00 via Android
    就用 aes 吧,常用的语言应该都有实现。
    niknik
        15
    niknik  
       2019-01-26 09:17:50 +08:00
    base64
    chinvo
        16
    chinvo  
       2019-01-26 09:19:38 +08:00
    @niknik #15 base64 严格意义上来讲不属于现代加密算法,因为没有密钥,所以密文的保密性取决于对加密过程的保密
    chinvo
        17
    chinvo  
       2019-01-26 09:20:28 +08:00
    yaokwok
        18
    yaokwok  
       2019-01-26 09:26:48 +08:00
    md5 不是加密算法,而是摘要算法,摘要算法检查数据的完整性,可检查数据有没有被改过。你想要的那种加密算法可以尝试 AES 对称加密和解密
    newmind
        19
    newmind  
       2019-01-26 09:28:04 +08:00
    对称的都行
    MonoLogueChi
        20
    MonoLogueChi  
       2019-01-26 09:28:42 +08:00 via Android
    加密都是可以解密的,换句话说就是可逆,md5 是摘要,摘要会有信息丢失,所以是不可逆的
    gamexg
        21
    gamexg  
       2019-01-26 09:31:10 +08:00
    aes 吧,
    除非古董 cpu 不然都有 aes 指令集,速度快。
    笔记本单核极限跑到了 900M/s。
    Halry
        22
    Halry  
       2019-01-26 09:54:37 +08:00 via Android
    加密算法均可逆
    哈希算法不可逆(除非被破解了)
    anguiao
        23
    anguiao  
       2019-01-26 11:16:22 +08:00   ❤️ 1
    @niknik base64 应该称之为编码,不能叫加密
    byteli
        24
    byteli  
       2019-01-26 11:20:00 +08:00 via Android
    一切对称加密
    min
        25
    min  
       2019-01-26 11:20:15 +08:00
    上古神器 3des
    目前流行 aes
    luozic
        26
    luozic  
       2019-01-26 11:43:16 +08:00
    czb
        27
    czb  
       2019-01-26 11:53:21 +08:00 via Android   ❤️ 1
    @Halry Hash 即使被"破解" 在决大多数情况下也不可能出现逆运算。因为 Hash 是从长字串有损变换到短字串,信息己经丢失就不可能回来。
    zn
        28
    zn  
       2019-01-26 12:03:50 +08:00 via iPhone
    rc4,自己实现就十几行代码,简单好用,性能也好,对加密安全性要求不高的最佳选择。
    wolfie
        29
    wolfie  
       2019-01-26 12:07:56 +08:00
    RqPS6rhmP3Nyn3Tm
        30
    RqPS6rhmP3Nyn3Tm  
       2019-01-26 12:12:51 +08:00
    好多人分不清加密、摘要和编码
    frylkrttj
        31
    frylkrttj  
       2019-01-26 12:26:20 +08:00
    倒退的想法
    lingyi95
        32
    lingyi95  
       2019-01-26 12:43:36 +08:00
    @BXIA 简要教一下
    sdijeenx
        33
    sdijeenx  
       2019-01-26 12:46:25 +08:00
    加密算法都可逆,不可逆的是信息摘要算法谢谢╮( ̄▽ ̄)╭
    msg7086
        34
    msg7086  
       2019-01-26 12:51:29 +08:00   ❤️ 10
    @lingyi95
    假设原文是 A,成品是 B,有路人字符串 P、Q。

    A 能变成 B,B 能变成 A -- 编码
    A 配合 P 能变成 B,B 配合 P 能变成 A -- 对称加密
    A 配合 P 能变成 B,B 配合 Q 能变成 A -- 非对称加密
    A 能变成 B,B 变不了 A -- 摘要
    Raymon111111
        35
    Raymon111111  
       2019-01-26 13:22:59 +08:00
    噢 那给你纸和笔以及一个 md5, 反推的算法是啥?
    ysjiang4869
        36
    ysjiang4869  
       2019-01-26 14:16:45 +08:00
    des,目前传输协议在用
    alexmy
        37
    alexmy  
       2019-01-26 14:19:28 +08:00
    aes 什么的都好用,如果是 js 的直接用 crypto-js。

    试一试: https://www.keylala.cn/aes
    ericgui
        38
    ericgui  
    OP
       2019-01-26 14:36:56 +08:00
    @msg7086 感谢
    @alexmy PHP,不是 js
    @gamexg 感谢,正在试
    madison1
        39
    madison1  
       2019-01-26 14:52:42 +08:00 via iPhone
    get 了新知识
    WordTian
        40
    WordTian  
       2019-01-26 15:03:45 +08:00 via Android
    楼主你题目是描述的随便用个 异或 都能搞定啊,不过比较常见的还是 aes

    计算资源足够又不嫌折腾的话,可以用非对称加密
    ooh
        41
    ooh  
       2019-01-26 15:18:07 +08:00
    rc4 快而且实现简单
    likuku
        42
    likuku  
       2019-01-26 15:20:42 +08:00
    哈希 和 加密 你搞混了耶,重新发明了“加密”
    inframe
        43
    inframe  
       2019-01-26 16:45:50 +08:00 via Android
    AES 不错,反正就是两大类,对称加密,非对称加密用得多。
    3dwelcome
        44
    3dwelcome  
       2019-01-26 17:12:33 +08:00 via Android
    @msg7086 如果限定原文是四位英文字母,那 md5 就是可逆的。
    摘要算法直觉上给人不可逆向,但其实不是,都是有前提条件的。
    asAnotherJack
        45
    asAnotherJack  
       2019-01-26 17:16:09 +08:00
    这种属于对称加密,aes 就行,如果非对称的话有 rsa,但是非对称的速度要慢很多,所以通常是两者结合使用
    otakustay
        46
    otakustay  
       2019-01-26 19:55:14 +08:00
    @3dwelcome 限定 4 位字母但不给你足够的空间做彩虹表,同样是不可逆的,暴力破并不是逆向
    mskf
        47
    mskf  
       2019-01-26 20:06:25 +08:00
    不可逆的是摘要算法,所有的加密算法都是可逆的
    libook
        48
    libook  
       2019-01-26 20:12:40 +08:00 via Android
    加密算法都是可逆的,因为加密最终还是要解密的,否则就是摘要或有损压缩。
    同一个密钥就可以完成的加解密通常是对称加密,当然私钥能推导出公钥的非对称加密也可以。去维基上搜一下对称加密算法都有什么就知道了。
    另外经典密码学里也有一些可以用的,比如凯撒密码( rot13 甚至连加解密算法都是一样的),以及密码表。
    reus
        49
    reus  
       2019-01-26 20:48:15 +08:00
    @gamexg 很多路由 cpu 就没有
    iRiven
        50
    iRiven  
       2019-01-26 20:51:01 +08:00 via Android
    哈希和加密区别了解一下
    assad
        51
    assad  
       2019-01-26 20:57:34 +08:00
    @t6attack RC4 算法
    raptor
        52
    raptor  
       2019-01-26 21:51:21 +08:00
    请找一本基本的密码学教科书看一下。MD5 叫做摘要算法,不是加密算法。
    helloworld000
        53
    helloworld000  
       2019-01-26 22:05:07 +08:00
    @ysjiang4869 2019 年都还在用 des。。。。还不如不用
    Halry
        54
    Halry  
       2019-01-26 22:20:10 +08:00
    @czb 是的,我的表达有问题。而且应该叫摘要算法,发出去的一刻后悔了.
    palxie
        55
    palxie  
       2019-01-26 22:21:02 +08:00
    这些不都是些常识吗??
    zyxk
        56
    zyxk  
       2019-01-26 22:26:27 +08:00
    借问下,C++除了 cryptopp 还有哪些好用的加解密库。
    hexoxssaa
        57
    hexoxssaa  
       2019-01-26 22:27:51 +08:00
    《密码编码学与网络安全:原理与实践》,中文版现已出到第七版,欢迎订购
    tuwulin365
        58
    tuwulin365  
       2019-01-26 22:32:56 +08:00
    3des
    aes
    sm4
    rsa
    sm2
    Phariel
        59
    Phariel  
       2019-01-26 22:34:37 +08:00 via iPhone
    非对称加密爆破属于社会工程范畴
    jugelizi
        60
    jugelizi  
       2019-01-26 23:02:36 +08:00
    现在的程序员。。。
    dudor
        61
    dudor  
       2019-01-26 23:17:54 +08:00
    你下载一个$$客户端,里面的加密方式都是可逆的
    1010543618
        62
    1010543618  
       2019-01-26 23:46:29 +08:00
    据说 RSA (素数测试和因式分解)那个在量子计算机出现前完全都够用了
    whx20202
        63
    whx20202  
       2019-01-27 00:31:43 +08:00
    AES 加密算法就行,记得千万不要用莫名其妙或者自己造的轮子,一定要用官方的加密库。
    qwertyegg
        64
    qwertyegg  
       2019-01-27 00:56:05 +08:00
    @whx20202 这是给 NSA 送人头吗
    msg7086
        66
    msg7086  
       2019-01-27 03:06:02 +08:00
    @3dwelcome 没有前提条件就是不可逆的。
    你这个「「限定」原文是四位英文字母」才是前提条件,而且如上所说,那也是爆破,并不是可逆运算。
    一定要给前提条件的话,你甚至可以说限定原文只能是"a",然后就可逆了(
    ericgui
        67
    ericgui  
    OP
       2019-01-27 11:58:49 +08:00
    @WordTian 不太懂欸。。。。
    mayenjoy
        68
    mayenjoy  
       2019-01-27 14:34:19 +08:00
    加密的逆操作就是解密,会保存所有原信息,为了安全的信息存储和传输,分为对称密钥加密和非对称密钥加密。
    摘要或者签名不是加密,会给出原信息的唯一特征码,为了校验。
    剩下的自己 Google 吧大哥。
    qaz564172564
        69
    qaz564172564  
       2019-01-29 17:13:27 +08:00
    md5 是 hash 算法吧,不属于加密
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2558 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 15:27 · PVG 23:27 · LAX 07:27 · JFK 10:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.