base64 的安全性如何

2017-08-31 17:05:09 +08:00
 ctt
base64 虽然只是编码文档,但也用到了编码字符表格:
"ABIDEFGHCJKLMNOPQujTUVWXYZabcdefghiSklmnopqrstRvwxyz0123456789+/"

如果把这个字符表随机打乱,比如
"/EXHYI6sc9RJPZyeqWi2QbNdh5uDL1MonwfS8VKxUrvF03lAGt7OgBk+zjC4Tmpa"

这样的话,有 64!( 10^89 )种可能。所以如果不知道打乱之后的字符表,而且这个字符表只有我自己知道,那是不是就已经实现了非常安全的加密?

应用:做了个网页文章的加密方法,生成随机字符表加密解密。
6382 次点击
所在节点    奇思妙想
43 条回复
billlee
2017-08-31 21:17:42 +08:00
单表密码,统计一下各个字符的频率,就破解了
KevZhi
2017-08-31 21:22:24 +08:00
凯撒密码已经被通过统计学方法破解,英文正文内每个字母出现的频率都是有大概的值的
caomu
2017-08-31 21:36:04 +08:00
有密码学入门的书推荐吗?
Shura
2017-08-31 21:52:55 +08:00
@caomu 《图解密码技术》
zhs227
2017-08-31 22:46:13 +08:00
针对英文的只要统计一下字母的使用频率就可以解出来。中文的可能复杂一些,但并不是不可解。
最好的还是非对称加密。
ctt
2017-08-31 22:48:41 +08:00
@zhs227 #25 我也是在想实践方面,中文文章的话还是可以一用的,特别是文本比较短的话,特征不太明显
zhs227
2017-08-31 22:53:29 +08:00
网页的其实没有用,因为还原算法是明文的。如果你做个 App 还算有点意义。
能防止 censorship,目前还没有看到其它优势。写来玩一下也还是可以的,至少方法上是可行的。
ctt
2017-08-31 22:57:14 +08:00
@zhs227 访问者持有密码本,然后浏览器里 js 解码,应该不会被窃吧
zhs227
2017-08-31 23:12:16 +08:00
原谅我实在脑洞没开那么大。如果你是说把上面 base64 那一长串东西输入到表单里,然后点击确定再查看的话,一般的用途还是可以了。
shuangguanQuail
2017-09-01 00:11:41 +08:00
信息安全准则之一:不要随意使用自己设计的加密算法。

而且,这个连加密算法都算不上吧
johnnie502
2017-09-01 01:07:51 +08:00
这和明文有区别?
yangqi
2017-09-01 01:27:13 +08:00
@ctt 访问者如何获得密码本?
loadinger
2017-09-01 09:16:10 +08:00
编码和加密
tghgffdgd
2017-09-01 09:51:52 +08:00
@yidinghe 说到躲避敏感词我就想笑,某网站在线加解密 based 因为编码文出现 tnt 直接被替代字符串了
chuanqirenwu
2017-09-01 10:29:55 +08:00
怎么解密?
ctt
2017-09-01 11:08:15 +08:00
@chuanqirenwu #35
写写小文章,偶尔需要加密,但我用的 github page 所以就纯静态的想用 js 实现下加密解密,之前感觉 aes 啥的太复杂,于是试了下 base64 更换那个编码表的方案。(现在已经用 aes 实现了一个)

方法是这样的:

一个 js 文件里面包括了 base64 编码函数。另一个 js 里面存放了根据特定编码表(就是那一长串 64 位字符)加密好的文章。

一个 html 文件实现文章的显示。通过识别 url 里的 hash,那个#后面的字符作为文章键值,找到 js 文件对应的加密字符串,然后需要输入密码,就是那一长串 64 位字符,然后浏览器中 base64 解码了。当然每次输密码也比较麻烦,url 里面如果同时包含了那一长串和文章的键值,那就可以直接解密显示。

至于如何添加文章,做一个生成器。可以把要加密的文章输进去,生成对应的一行加密后的内容,添加到那个存储文章的文件里。。。图片附件的我用 aes 实现了下。

chuanqirenwu
2017-09-01 11:59:01 +08:00
@ctt 放在 URL,URL 会不会有长度限制。我可以这样理解么?本质上是通过对照密码本解密的?
wizardforcel
2017-09-01 13:26:01 +08:00
@LeeSeoung 统计频率是最不靠谱的,因为可以混淆。
paragon
2017-09-01 15:28:59 +08:00
在统计学面前这些都是鶸~
nadoo
2017-09-01 15:32:40 +08:00
@learnshare 说到虾米,刚去看了下,虾米现在貌似不是数字 id 了,如: http://www.xiami.com/song/VdNH54440 您是说现在虾米 url 中的这个 id,和数字 id 的转换算法,有人公布了吗?

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

https://www.v2ex.com/t/387224

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

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

© 2021 V2EX