个人认为 base64 仅是一种编码方式,不算是加密算法

2019 年 7 月 5 日
 hoyixi
看到 V 站上不少在加密相关的回帖里,以为用 base64 编个码,就算加密了.

是个人顺手就解码了(当然,超级计算机小白,连 base64 编码特征也看不出来或者压根不知道这回事,倒是不知道解码),这算哪门子加密?

base64 编码本身出现的意义是把二进制数据编码为文本,方便网络传输~

不少人 base64 编码 email 或者 WX 等联系方式,那是骗爬虫的,爬虫是根据文本特征提取文本的,base64 只不过隐藏了 email 地址等的文本结构特征。 然而照样可以抓 base64 编码,然后解码判断提取。


所以,base64 不是万能的,别为了 base64 而 base64,也别以为 base64 包打天下。
25507 次点击
所在节点    程序员
201 条回复
Hconk
2019 年 7 月 5 日
base64 的问题快成 v 站日经贴了。
icy37785
2019 年 7 月 5 日
@jowenzzzzz 回错人了吧。
realpg
2019 年 7 月 5 日
base64 是一种加密方法
反而常用来存储密码的 md5 sha1 啥的不是
icy37785
2019 年 7 月 5 日
@niubee1 前面所有说 base64 算加密的都加了范围是广义范围内,或者古典密码学范畴,你连密码学都没看过,就别跟楼主一样出来哗众取宠了,密码学第一章就对加密的进行了定义,base64 显然是符合定义的。只是在现代密码学范畴才开始对加密要求了密钥。不要你以为不是就不是,目前你知道的不知道的所有加密,都是密码学的成果,不是你以程序员身份可以下定义的,更不是你用你的无知来说别人改行的。。。
当程序员起码应该善于用搜索吧,搜索一下“加密”的定义不难吧,不懂就搜索要求不高吧,就你这不懂,也不去试图弄懂,就开始大放厥词,我倒是想劝劝你,这行不适合你。科学的事情是严肃的,一是一二是二,别用 py 考虑问题,别人民科还动动脑子呢,你这民科都不如的程序员更是趁早离开这行,别害人害己了
niubee1
2019 年 7 月 5 日
@icy37785 最烦这种动不动就给你随意扩大范围跟你扯蛋的。什么是 Base64, 什么是密码学都没搞懂的恰恰就是你们这类动不动就比喻类比的“文科帝”。 但是技术的事情,说一是一说二是二, 你要玩嘴炮根文科生玩去。
下面科学的批判一下你的错误。
第一, 维基百科对于 Base64 的解释是:Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。而确实 Base64 的由来就是为了用可见字符来描述二进制数据的一种“编码方式”。
何谓编码方式?编码方式是将二进制数据和字符之间进行映射的一种方式,这种映射是计算机系统如何处理文字的基础。这种映射是有序的,比如 97 表示了字符 a, 那么 98 必然标识了字符 b。这种有序的, 公开的映射即为编码。

第二, 何谓加密。维基百科的解释是: 在密码学中,加密(英语:Encryption )是将明文信息改变为难以读取的密文内容,使之不可读的过程。只有拥有解密方法的对象,经由解密过程,才能将密文还原为正常可读的内容。

注意, 为什么有后面一句, 加密的基本三元素 明文-密钥-密文。密钥就是解密方法的对象。 用最经典的凯撒密码来说

>------------------------------------摘自维基百科-------------------------------------------
>凯撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位>置。例如,当偏移量是左移 3 的时候(解密时的密钥就是 3 ):
>
>明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
>密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC
>----------------------------------------------------------------------------------------------

注意,3 是密钥(解密过程的关键), 这是可以变的, 只有传递信息的双方知道, 这才是密钥。
我们可以理解为, 凯撒密码采用了字符映射的方式(编码)来实现了加密,但是密钥才是关键, 字符映射是实现的(基本)手段。

回到正题就是, **从最基本的加密概念来说, 可以采用只有加密解密双方共同知道的映射方式的字符映射来实现加密。但是你不能理解成字符映射等于加密。就跟你可以用牛肉来煎牛排,但是牛肉并不是牛排, 它也可能是土豆炖牛肉一个道理。** 这种民科似的随意扩大概念来彰显自己的方式并不可取。谁用 PY 思考问题一目了然
her999
2019 年 7 月 5 日
如果 Base64 是加密算法的话,那么 ascii、gbk、big4、utf-8 等等是不是也算加密方法呢?
niubee1
2019 年 7 月 5 日
@icy37785 而且看你之前的回复,你居然认为算法公开和 Base64 的编码方式公开是一个意思:

我真是服了你了。 加密算法的哪个算法不是公开的?没有密钥你有公开的算法有个毛用啊,你是真不懂啥是加密, 啥是加密算法啊。还古典密码学,上面的回复给你科普了“古典的”凯撒密码。 没有密钥?不知道 偏移量也够你实验半天的了。偏移量就是密钥, 还口称“古典密码学”, 笑死先人了
claysec
2019 年 7 月 5 日
好了我们都用 PGP 交流吧(逃)
vincel
2019 年 7 月 5 日
楼主贻笑大方了…谁给你说用 base64 发 wx 的目的是加密。你把这当贴吧了吧 给 v2er 这样的大部分受众是程序员的人群普及编码算法…
niubee1
2019 年 7 月 5 日
@vincel 不至于, 至少回帖暴露出了好大一部分所谓的“程序员”, 其实并不真正理解了编码, 和加密
kawkeye
2019 年 7 月 6 日
帖子描述的很有激情
我不喜欢被代表和戴帽子
我也不喜欢留联系方式
zrt
2019 年 7 月 6 日
ROT13 算不算加密算法呢?
scnace
2019 年 7 月 6 日
不然呢?
scnace
2019 年 7 月 6 日
Go 的包名说明一切

encoding/json encoding/base64

crypto/md5 crypto/rsa
rpish
2019 年 7 月 6 日
@uqf0663 看来以后人肉程序员得试下 bs64
umbrellakkk
2019 年 7 月 6 日
是不是加密不是以你能不能轻易解密来定义的,就好像你做的题是不是考试题,不是由你会不会做来决定的,你会做的就是作业,不会做的就是考试,没这个概念。
stabc
2019 年 7 月 6 日
谦虚点吧。
binux
2019 年 7 月 6 日
base64 这个话题以前就争论过了 https://study.congcong.us/t/513457#r_6549614
不过看起来这次支持 base64 在古典密码学范畴算加密的人数多一些了😁
yutou527
2019 年 7 月 6 日
为什么是你个人认为🤣,base64 本来就是个编码方式啊。
帖子里 base64 一般都是处理下联系方式防 spider 的啊
darknoll
2019 年 7 月 6 日
这不是常识吗,搞计算机的还专门来说这个,岂不是太掉价了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/580295

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX