能力值:
( LV4,RANK:50 )
|
-
-
2 楼
加密?原集合与加密集合一样大,你还想压缩再加校验位?你是不是想太多了
是不是弄一张表,多个字符转成一个字符以后加密?
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
1、加密后的数据长度不会小于数据加密前的长度。
2、如果想减少数据长度,可以考虑压缩算法。可压缩算法的实现原理是对重复数据实现压缩,有可能压缩后的数据大小还大于原来的数据大小。
而你要加密的原始长度小于16字节,这种想法是实现不了的。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
还要缩长度。。要么减少信息熵,要么压缩数据位,可以做,但考虑到加密安全性就复杂了
给你一种简单的思路吧,因为你的密码是纯数字,也就是0~9,
一个字符长度是8bit,其实用4个bit就可以表示0-15或-8~7,所以如果将0-9映射到这个范围内
那么一个字符是可以存储两个数字的。
至于映射嘛,可以给你推荐异或公式,如果以个位数字进行异或,是可以达到集中映射的效果的,比如0~9与5异或的集合就是{5,4,7,6,1,0,3,2,-5,-4},而且异或翻转特性也不错,这个新集合再和5异或就还原了
至于加密部分,个人觉得看需求吧,难的我也不会,简单的估计你也不需要,就不献丑了
另外如果觉得有参考价值能赏个15kx么,还没转正呢嘿嘿,挂机好难挂啊
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
谢谢你的回复
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
谢谢你的回复,但现在是问题没解决,也不知如何下手,朋友能解决吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
或都哪位能写出 小于等原串长度也行
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
我只是没做加密而已,但是如果能控制加密结果也是0~9的数字范围的话,长度是可以减少一半的,也就说加密后的上限是10个字符,那么可以存储20个数字
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
另外考虑到你的密钥是8个字符,你可以考虑使用对称加密算法,那么就是将待加密明文补齐到8个字、16个字然后将AES之类的算法精简一下就行了
|
能力值:
( LV4,RANK:50 )
|
-
-
10 楼
把数据弄到位域里面高4位第4位,首先第一个4位是长度编码,按你要求,还要进行有效性验证,所以最后还要加几位,所以15长度密码,最小编码长度9字节,再加密,但是加密完成以后数据不一定是可打印字符,所以这时候就要进行base64或者其他的编码进行可打印字符编码,这时候字符量又加长到了至少9*8/7>10字符,如果非要显示为数字会更加长,所以按要求10个数字编码不可能,除非你算好所有密码某个中间值,查数据库。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
我对加密这块不了解,写出的函数很容易看透,达不到加密效果, 能否有朋友可以代写出来, 高分悬赏 ,或QQ私聊 99-61-684
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
5000Kx 悬赏
我对加密这块不了解,写出的函数很容易看透,达不到加密效果, 能否有朋友可以代写出来, 高分悬赏 ,或QQ私聊 99-61-684
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
不懂帮顶
|
能力值:
( LV9,RANK:270 )
|
-
-
14 楼
不可能实现的。
这个帖的要求比楼主另一个帖“ 如何加密数字后让结果变短?”更加苛刻。
只需要记住一点,加密与解密中,输入与输出是一一对应的!或者说,输入数据空间与输出数据空间存在某种相互映射。
我们把问题简化一下:0~99共100个数,加密后只能用0~9这10个数来表示。
按“一一对应”的映射原则,可以设计一种算法来保证从100个数中按某种“规则”挑选10个数作为输入(明文),经过变换(加密)成为输出(密文);解密时走这个逆过程就好了。这肯定没有问题。
现在的命题是: 这100个数全部都要用10个数来表示,这显然实现不了!
用个可能不太恰当的故事来讲这个问题,可能比空间映射更好理解。
在世界末日,地球即将毁灭,人类历经浩劫,仅存100个地球人。幸运的是,我们有“诺亚方舟”号飞船可以搭载10个人,到其他适于生命生存的星球重建家园。
我佛大慈大悲,欲普渡众生,希望100个人都能挤上飞船。但上帝造物,飞船仅允许10名乘客。
怎么办!?只能按上帝的意志从100个人中挑选出10个人,去为我们创造新世界。
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
100,00Kx 悬赏求写一函数,达到加密、解密即可。
欢迎大神交流,QQ: 99-61-684
请备注说明。
|
|
|