搜索
bottom↓
回复: 72

一个6位数字加密后还是6位,有什么好办法?

[复制链接]

出0入0汤圆

发表于 2018-8-10 10:07:36 | 显示全部楼层 |阅读模式
比如123456,两两交换214365这样,但是太low了,很容易被发现规律

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2018-8-10 10:09:05 | 显示全部楼层
最好是其中任何一位变化,加密后6位都有变化,没有那么明显的规律。当然这个加密要可逆的

出10入61汤圆

发表于 2018-8-10 10:11:47 | 显示全部楼层
如果密码只是有来校验,取哈希值后6位。   如果别人获取不到更多样本用来发现规律, 多用几种这些简单的交换 异或之类

出0入0汤圆

 楼主| 发表于 2018-8-10 10:14:15 | 显示全部楼层
tcm123 发表于 2018-8-10 10:11
如果密码只是有来校验,取哈希值后6位。   如果别人获取不到更多样本用来发现规律, 多用几种这些简单的交 ...

异或之类的也想过,但是有个问题,有些数字转完以后10进制已经大于999999了

出0入0汤圆

发表于 2018-8-10 10:16:15 | 显示全部楼层
看看谍战电影,会有启发

出0入0汤圆

发表于 2018-8-10 10:21:30 | 显示全部楼层
密码表是最简单的。

出0入0汤圆

发表于 2018-8-10 10:22:51 | 显示全部楼层
CRC?         

出0入0汤圆

 楼主| 发表于 2018-8-10 10:29:40 | 显示全部楼层

CRC不可逆

出0入0汤圆

 楼主| 发表于 2018-8-10 10:31:06 | 显示全部楼层
cc2666 发表于 2018-8-10 10:29
换二进制或者8进制再换位,或者行列交换重组

或者直接查表

这样试过,换完后有些数字大于999999了,怎么可以避免这个

出0入34汤圆

发表于 2018-8-10 10:36:18 | 显示全部楼层
将组数用运算式 AND、OR、EXOR、+、-、*、/ 等拆分成两组或多组数,需要解码时再由运算得知原组数。
头像被屏蔽

出0入0汤圆

发表于 2018-8-10 10:36:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2018-8-10 10:39:15 | 显示全部楼层
xyz543 发表于 2018-8-10 10:36
将组数用运算式 AND、OR、EXOR、+、-、*、/ 等拆分成两组或多组数,需要解码时再由运算得知原组数。
...

比如6个0这样的,转换16进制是00 00 00,假如取反操作就变成了FF FF FF,这样换成10进制就是16777215,位数变多了,超过6位,怎么样才能避免类似问题,要求转完后还是6位10进制数字

出0入0汤圆

 楼主| 发表于 2018-8-10 10:41:02 | 显示全部楼层
cc2666 发表于 2018-8-10 10:39
换个理解方式,本来是0-9,现在要用到0-F了,只是这个0-F没有用全,应该可以再处理回来 ...

看14楼例子,好像不好处理回来

出0入34汤圆

发表于 2018-8-10 10:42:29 | 显示全部楼层
.titrwh 发表于 2018-8-10 10:39
比如6个0这样的,转换16进制是00 00 00,假如取反操作就变成了FF FF FF,这样换成10进制就是16777215,位 ...

那就没搞头了,估计只能查表法了!

出0入0汤圆

发表于 2018-8-10 10:43:00 | 显示全部楼层
随机生成对应表,强行查表

出0入0汤圆

发表于 2018-8-10 10:44:33 | 显示全部楼层
rc4怎么样? 就是以前wifi的wep加密方式,以前搞硬件的时候,串口通讯协议就是用这个加密的。

出0入58汤圆

发表于 2018-8-10 10:45:03 | 显示全部楼层
DES加密啊,123456加密之后是i+BZZUAzGD4= 而且也是可逆的。



附C#的加密代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入58汤圆

发表于 2018-8-10 10:47:11 | 显示全部楼层
调用方法 EncryptUtils.DESEncrypt("123456", "!qaz2wsx", "@wsx1234");

后面两个字符串是密钥字符串和初始化向量字符串,差不多类似加密因子。

出0入0汤圆

 楼主| 发表于 2018-8-10 10:47:21 | 显示全部楼层
shawn_bu 发表于 2018-8-10 10:45
DES加密啊,123456加密之后是i+BZZUAzGD4= 而且也是可逆的。

要转完还是6位10进制

出0入0汤圆

发表于 2018-8-10 10:56:16 | 显示全部楼层
搞个 比如有2组 10个加密表   第x1个数字选择 第一组加密算法   第一组加密后的数据的第 x2个数字 选择第二组加密算法

出0入0汤圆

发表于 2018-8-10 10:57:15 | 显示全部楼层
偶数加1,奇数减1 ,然后按楼主那个双双转
再重复几次
我想没有那个人那么无聊去破解楼主的东西吧
有就拿东西去搞他

出0入0汤圆

发表于 2018-8-10 11:06:51 | 显示全部楼层
辣条 发表于 2018-8-10 10:43
随机生成对应表,强行查表

这是正解!

出0入0汤圆

发表于 2018-8-10 11:08:26 | 显示全部楼层
第一位数据+3 ,第二位+9, 第三位+7.。。。每个位随便怎么加。 简单方便还可逆

出0入0汤圆

发表于 2018-8-10 11:17:11 来自手机 | 显示全部楼层
取数字的ascii码,加密方式大把的有。

出0入0汤圆

发表于 2018-8-10 11:17:19 | 显示全部楼层
本帖最后由 nanfang2000 于 2018-8-10 11:22 编辑
xzhiwei 发表于 2018-8-10 11:08
第一位数据+3 ,第二位+9, 第三位+7.。。。每个位随便怎么加。 简单方便还可逆 ...


编辑原因,理解错误,这是可行的,就是规律比较好找

可以是,对每一位有个转换表
比如第一位数字:
数字1-》5
数字2-》1
数字3-》6




第2位数字:
数字1-》3
数字2-》6
数字3-》2




不过还是比较好找规律的,最好就是做个6位数随机和6位数一一对应的转换表,就是像间谍用的密码本

出0入0汤圆

 楼主| 发表于 2018-8-10 11:17:55 | 显示全部楼层
xiaorenren 发表于 2018-8-10 10:57
偶数加1,奇数减1 ,然后按楼主那个双双转
再重复几次
我想没有那个人那么无聊去破解楼主的东西吧

这种方式如果源码只改变了一位,加密后也只有一位改变,很容易发现规律,最好是一位改变,其余都变

出0入17汤圆

发表于 2018-8-10 11:24:25 | 显示全部楼层
xzhiwei 发表于 2018-8-10 11:08
第一位数据+3 ,第二位+9, 第三位+7.。。。每个位随便怎么加。 简单方便还可逆 ...

每一个密码生产的新密码是固定的,很容易被找到规律。

出0入0汤圆

发表于 2018-8-10 11:24:27 | 显示全部楼层
先把这个数按照规律扩展到256位, 比如123456123456.....123456, 然后使用一种已有的可靠的加密方法比如, aes128, 加密后生成的结果, 按照一定规律抽取, 转为整数.  这样处理可以用于校验, 不能反向

出0入17汤圆

发表于 2018-8-10 13:24:30 来自手机 | 显示全部楼层
根据一定的规则查表,表的数据多可以无限大。

出30入54汤圆

发表于 2018-8-10 13:37:43 | 显示全部楼层
可以参考英格玛的实现,它是26个字母替换为26个字母并且不断迭代,你按照它的原理替换成0-9应该就可以了

出0入0汤圆

发表于 2018-8-10 13:44:22 | 显示全部楼层
返回当前六位数位于圆周率后的第多少位小数

出0入0汤圆

发表于 2018-8-10 17:05:00 | 显示全部楼层
glacier1 发表于 2018-8-10 13:44
返回当前六位数位于圆周率后的第多少位小数

这个密码本不错。

出0入0汤圆

发表于 2018-8-10 17:12:57 | 显示全部楼层

CRC不可逆

出0入0汤圆

发表于 2018-8-10 17:24:29 | 显示全部楼层
shawn_bu 发表于 2018-8-10 10:45
DES加密啊,123456加密之后是i+BZZUAzGD4= 而且也是可逆的。

楼主这个麻烦在不够一个字节分组

出0入0汤圆

 楼主| 发表于 2018-8-10 17:34:55 | 显示全部楼层
vuo50z 发表于 2018-8-10 17:24
楼主这个麻烦在不够一个字节分组

懂我,有好的建议吗

出0入0汤圆

发表于 2018-8-10 17:47:04 | 显示全部楼层
AES128 ECB模式简单直接可逆

出350入477汤圆

发表于 2018-8-10 17:47:40 | 显示全部楼层
本帖最后由 redroof 于 2018-8-11 09:45 编辑
.titrwh 发表于 2018-8-10 17:34
懂我,有好的建议吗

我看错了,是6个9,而不是5个,所以没办法使用我之前说的那个方法了~


出0入0汤圆

发表于 2018-8-10 22:46:02 来自手机 | 显示全部楼层
做100万对换表如何,这个连规律也找

出350入477汤圆

发表于 2018-8-11 09:55:16 | 显示全部楼层
camtime 发表于 2018-8-10 22:46
做100万对换表如何,这个连规律也找

100万到100万的转换表,每个数据3字节,一个表就是3兆,正向和反向都要就是6兆~
如果你有这么大的Flash容量,当然没问题

出0入0汤圆

发表于 2018-8-11 10:11:11 | 显示全部楼层
你需要一本字典

出0入0汤圆

发表于 2018-8-11 10:41:52 | 显示全部楼层
纯数字加密没用几秒钟就跑完了除非错误一次延时几秒再错几分钟

出0入0汤圆

发表于 2018-8-13 09:35:47 | 显示全部楼层
.titrwh 发表于 2018-8-10 17:34
懂我,有好的建议吗

我对密码学也不是很懂。
其实那些密码算法的NB之处是算法公开,但还是能不被破解。
如果你的应用场景能够做到算法保密,那就好办多了。

出0入0汤圆

 楼主| 发表于 2018-8-13 09:38:15 | 显示全部楼层
vuo50z 发表于 2018-8-13 09:35
我对密码学也不是很懂。
其实那些密码算法的NB之处是算法公开,但还是能不被破解。
如果你的应用场景能够 ...

可以保密啊,还是没有好办法

出0入0汤圆

发表于 2018-8-13 09:43:56 | 显示全部楼层
.titrwh 发表于 2018-8-13 09:38
可以保密啊,还是没有好办法

左移右移,加加减减,查密码表转换,尽量搞复杂点别人很难猜的。
当然还要看你需要的加密等级,如果要求绝对不可破解,还是要请教专家了。
如果是6位十进制,转换成二进制还会有一些空余,可以利用这些空余增加一些随机干扰。

出0入0汤圆

发表于 2018-8-13 09:46:19 | 显示全部楼层
.titrwh 发表于 2018-8-13 09:38
可以保密啊,还是没有好办法

如果有时间,有精力,可以研究下3DES算法,把它改成6字节分组。
这个是瞎说的,只是提个可能的方法。

出0入0汤圆

发表于 2018-8-15 15:02:56 | 显示全部楼层
按位重新排列成一个6位数,再做一次运算。

出0入0汤圆

 楼主| 发表于 2018-8-15 15:41:57 | 显示全部楼层
这几天自己搞定了,楼上很多人其实没搞明白我的困扰,我的问题在于6位十进制转成2进制最大是20位,通过各种运算后虽然还是20位,但20位二进制转为10进制最大是1048575,超过6位,所以不符合要求了。

现在用了个折中的办法,原密码范围减小到19位二进制,对应最大十进制524287,几乎损失了一半,暂时想到办法只能这样了,这样19位二进制各种左移右移加加减减的多次循环,最终换回十进制不会超过6位,基本符合要求,加密离散性也足够,即任意改变一位十进制数字,加密后的6位十进制几乎全变化,看不出任何规律。

出0入0汤圆

发表于 2018-8-17 14:18:36 | 显示全部楼层
很好的话题,收藏浏览了~

出0入0汤圆

发表于 2018-11-16 13:04:21 | 显示全部楼层
查表 随机异或种子 基本就这样

出0入0汤圆

发表于 2018-11-22 22:23:01 来自手机 | 显示全部楼层
你这个加密应该不是可逆的,而且感觉是可以暴力破解的,这种数据,最好使用变种的英格玛方式加密 但是 特别依赖于数据准确性,错了一个就全错了,而且英格玛加密不会影响你的数值大小

出0入0汤圆

发表于 2018-11-22 23:00:17 来自手机 | 显示全部楼层
.titrwh 发表于 2018-8-15 15:41
这几天自己搞定了,楼上很多人其实没搞明白我的困扰,我的问题在于6位十进制转成2进制最大是20位,通过各种 ...

这个是可逆么

出0入0汤圆

 楼主| 发表于 2018-11-23 09:11:52 | 显示全部楼层
雨雪随行 发表于 2018-11-22 22:23
你这个加密应该不是可逆的,而且感觉是可以暴力破解的,这种数据,最好使用变种的英格玛方式加密 但是 特别 ...

是可逆的啊

出0入0汤圆

 楼主| 发表于 2018-11-23 09:12:11 | 显示全部楼层

是可逆的啊

出0入0汤圆

发表于 2018-11-23 09:18:52 | 显示全部楼层
其实先替换再调换就行了。不知道其中规则破解可能性很低
例如:123456,654321
原始数据转换
0=4,1=3,2=8,3=5,4=1,5=9,6=0,7=2,8=6,9=7
得385190,091583
再进行位置调换13,26,45,结果503918,130859
你能凭结果推出原始数据吗

出0入0汤圆

 楼主| 发表于 2018-11-23 09:36:06 | 显示全部楼层
Tliang 发表于 2018-11-23 09:18
其实先替换再调换就行了。不知道其中规则破解可能性很低
例如:123456,654321
原始数据转换

这个很容易看出来的,如果原始数字只有一位变了,加密后也只有一位改变,多几组数据很容易就看出规律了

我这个加密后任何一位发生变化,最终6位数字可能全部会变,而且没有明显规律。

出0入0汤圆

发表于 2018-11-23 09:45:33 | 显示全部楼层
.titrwh 发表于 2018-11-23 09:36
这个很容易看出来的,如果原始数字只有一位变了,加密后也只有一位改变,多几组数据很容易就看出规律了

...

中间再加上每位加多少减多少就行了。这样每位都不一样

出0入0汤圆

 楼主| 发表于 2018-11-23 10:07:10 | 显示全部楼层
Tliang 发表于 2018-11-23 09:45
中间再加上每位加多少减多少就行了。这样每位都不一样

加多少减多少是固定的还是可变的,如果固定还是会有明显规律,可变的话依据什么,怎么保证可逆

出0入0汤圆

发表于 2018-11-23 10:13:28 | 显示全部楼层
本帖最后由 Tliang 于 2018-11-23 10:15 编辑
.titrwh 发表于 2018-11-23 10:07
加多少减多少是固定的还是可变的,如果固定还是会有明显规律,可变的话依据什么,怎么保证可逆 ...


按照位进行加减,
例如第一位加6,第二位减3.....
之后再进行替换,换位

或者你直接先按位替换,第一位0替换为2第二位0替换为5这样
然后再进行数据替换,换位

出0入0汤圆

 楼主| 发表于 2018-11-23 10:16:33 | 显示全部楼层
Tliang 发表于 2018-11-23 10:13
按照位进行加减,
例如第一位加6,第二位减3.....
之后再进行替换,换位

这样本质还是替换了一位数字,比如123456和123457,这两个数字加密后必定还是只有一位数字不一样

出0入0汤圆

发表于 2018-11-23 10:22:10 | 显示全部楼层
.titrwh 发表于 2018-11-23 10:16
这样本质还是替换了一位数字,比如123456和123457,这两个数字加密后必定还是只有一位数字不一样 ...

那也简单,按位依赖替换。第一位为0时第二位使用一组数据替换,为1时使用另一组数据替换。这样改变一位全部改变。你改变了第一位第二位就会改变
然后第七位改变第一位就改变,循环两次。出来的数据就是改一位全改变

出0入0汤圆

 楼主| 发表于 2018-11-23 10:23:05 | 显示全部楼层
Tliang 发表于 2018-11-23 10:22
那也简单,按位依赖替换。第一位为0时第二位使用一组数据替换,为1时使用另一组数据替换。这样改变一位全 ...

这样是全变了,怎么可逆算回去???

出0入0汤圆

发表于 2018-11-23 10:24:33 | 显示全部楼层
.titrwh 发表于 2018-11-23 10:23
这样是全变了,怎么可逆算回去???

你都是替换过来的,怎么没法逆向。你按照替换规则逆向替换就行了

出0入0汤圆

 楼主| 发表于 2018-11-23 10:29:41 | 显示全部楼层
Tliang 发表于 2018-11-23 10:24
你都是替换过来的,怎么没法逆向。你按照替换规则逆向替换就行了

你上面说有10组不同的数字替换,那么肯定会有相同的,比如5可能是1或者2替换到的,那么你拿到5怎么知道原来是1还是2?

出0入0汤圆

发表于 2018-11-23 10:34:38 | 显示全部楼层
.titrwh 发表于 2018-11-23 10:29
你上面说有10组不同的数字替换,那么肯定会有相同的,比如5可能是1或者2替换到的,那么你拿到5怎么知道原 ...

一步一步逆向替换回去。每一位按照顺序替换过来的,再按照逆序替换过去。得到的数据自然就是你之前的数据,你要是有兴趣可以尝试按照每一位依赖顺序替换算一下,结果再逆序替换,看结果出来是不是一样的

出100入113汤圆

发表于 2018-11-23 10:40:08 | 显示全部楼层
楼主,这个问题很简单,参考一下标准的对称加密算法,把分组长度修改一下就好,比你自己琢磨出来的算法可靠得多!简单的就用DES算法,原理简单,分组长度很好调整的。

出0入0汤圆

 楼主| 发表于 2018-11-23 10:44:26 | 显示全部楼层
Tliang 发表于 2018-11-23 10:34
一步一步逆向替换回去。每一位按照顺序替换过来的,再按照逆序替换过去。得到的数据自然就是你之前的数据 ...

你要是有兴趣可以尝试按照每一位依赖顺序替换算一下,肯定算不回去

出25入84汤圆

发表于 2018-11-23 10:52:24 | 显示全部楼层
采用区块链加密的思想:私钥和公钥进行加密和解密。

出0入0汤圆

发表于 2018-11-23 10:57:04 | 显示全部楼层
.titrwh 发表于 2018-11-23 10:44
你要是有兴趣可以尝试按照每一位依赖顺序替换算一下,肯定算不回去

要是算的回去怎么办?要不要打个赌

出0入0汤圆

发表于 2018-11-24 12:05:42 | 显示全部楼层
明文、密文空间太小,才100万,无法对抗已知明文破解,就算生成随机密码表也意义不大
你的应用场景到底是啥?

出0入0汤圆

 楼主| 发表于 2018-11-24 17:17:51 | 显示全部楼层
cc224 发表于 2018-11-24 12:05
明文、密文空间太小,才100万,无法对抗已知明文破解,就算生成随机密码表也意义不大
你的应用场景到底是啥 ...

这个用在密码锁的,已经使用几个月了,效果很好,这些是带时效的离线密码

出0入0汤圆

发表于 2018-11-24 17:47:13 来自手机 | 显示全部楼层
先用数D跟明文模100万相加,然后按6位10进制数循环左移N位,如此循环次M次,每次循环的D和N都由某个密钥生成。由于每一步都是可逆的,所以整个过程是可逆的,并且最终结果也在100万以内。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-18 17:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表