有 相同输入但每次输出不同 的编码方式/算法吗?

2020-07-08 16:17:16 +08:00
 lxk11153
  1. 输入相同内容
  2. 每次输出结果不同
  3. 拿 2 的结果去解码得到 1

反例: 把"zxcvbn"拿去 base64,每次结果都一样

3008 次点击
所在节点    问与答
37 条回复
misdake
2020-07-08 18:59:48 +08:00
如果对安全性毫无要求,甚至可以直接随机一个密钥,用某种对称加密算法来加密。分享的时候同时提供密文和密钥。
reus
2020-07-08 19:04:27 +08:00
所有需要 iv 加密的对称加密都是啊
Corua
2020-07-08 19:08:02 +08:00
@murmur rsa 也要看填充方式的,pkcs 每次可以填充随机字节来加密,但解密后填充的部分会被忽略掉
ipwx
2020-07-08 19:13:46 +08:00
楼主需要的那东西叫做 IV
systemcall
2020-07-08 19:26:01 +08:00
你可以在个人介绍上放个公钥,每次发东西就拿私钥加密,内容多混淆几次
但是采集可能是人工采集,人力并不贵,如果是有价值的东西就可能那样子做。比如以前的人工打码平台就是请了一堆人手动打码
PHPer233
2020-07-08 19:27:21 +08:00
RSA 加密就是你说的这种情况
Hconk
2020-07-08 19:40:33 +08:00
生成随机数,范围可以尽量大,然后用这个随机数作为密钥随便找一种对称加密算法加密,把密钥和加密结果拼接成一个字符串,应该符合了吧。只要随机数范围足够大就能让密钥重复出现的概率低到可以忽略。
lshero
2020-07-08 20:11:01 +08:00
@lxk11153 丢个 jwt token 让用户去 jwt.io 查看 payload
Nich0la5
2020-07-08 22:37:47 +08:00
加随机数然后用一些经典对称加密手段就好了。
举例
输入 abcd 然后加上 123 组成 abcd123 然后每位+1bcde234 再栅格错位 bd24ce3,计算量足够小,还原也简单
ob
2020-07-08 22:44:15 +08:00
#17 楼说的对
lululau
2020-07-08 22:52:27 +08:00
#!/bin/bash

sed “s/^/$(uuidgen)/“
churchmice
2020-07-09 11:02:26 +08:00
@lxk11153 你这玩意本质也是输入变了

如果这样,还不如
随机数 1+明文+随机数 2

然后加密,解密的时候把前后随机数剔除
af463419014
2020-07-09 14:44:59 +08:00
@lxk11153 rsa 就是随便找个网站就能加密解密,跟 base64 一样方便
lxk11153
2020-07-09 16:02:14 +08:00
@af463419014 #33 实现 rsa/aes 并不难,重点是 rsa 的细节要保持一致,什么 CBC/ECB, 各种 Padding,再加上 key,已经好几个配置项了

@churchmice #32 类似 14 楼,”对输入加上一些干扰“与标题“相同输入”确实有些出入了,但也是符合我的意图的,就是说 1. 相同的输入或者加上干扰,但这干扰对小白们也是可以方便移除的 2. 可以不用安全性,只是避免相同来简单对抗下信息关联 3. 如果是一个编码 /加密算法的话,小白门要能方便的解码出来
jifengg
2020-07-10 17:39:37 +08:00
function encode(str){return btoa(Array.from(str).map(a=>a+parseInt(Math.random()*10)).join(''));}

function decode(str_base){let m='';Array.from(atob(str_base)).forEach((v,i)=>{m+=i%2==0?v:'';});return m;}

这个算法是,在邮箱地址每个符号中插入一个随机字符[0-9]。解码的时候只取下标为偶数的字符拼接。
lxk11153
2020-10-01 10:51:36 +08:00
以#8 的场景,或者用 paste.ubuntu.com + 失效时间 来分享
xxxbin
170 天前
字体加密?在内容中指定加密字体,加载后显示?

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

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

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

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

© 2021 V2EX