有什么样常用的可逆加密算法? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
ericgui
V2EX    程序员

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

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

    比如说, 我有一段字符串,加上$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     Solana     3595 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 10:25 PVG 18:25 LAX 03:25 JFK 06:25
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86