求一个加密函数,对任意一个数字加密得到固定16位数字,可解密 150

'加密函数传进明文和密钥,加密得到结果'fun1("1","testkey")'对1进行加密得到固定16位数字,例如:4213894722178320'fun1("2",... '加密函数传进明文和密钥,加密得到结果
'fun1("1","testkey") '对1进行加密得到固定16位数字,例如:4213894722178320
'fun1("2","testkey") '对2进行加密得到固定16位数字,例如:8711982643181907,注意虽然1和2只差,但是加密后的数据无序无规律
Function fun1(s$, key$)
'加密实现方法
End Function

'根据加密后的数字解密还原明文
'fun2("8711982643181907","test"),例如根据上面的可以得到数字2
Function fun2(s$, key$)
'解密实现方法
End Function

以上两个函数fun1和fun2谁能实现呢?目的就是要加密看起来没有任何规律,同时也能解密。
有具体方法吗?纯数字16位哦。 我看过一下加密方法,发现1位数加密出来都十几位了。 我要10位数加密后是16位数字。 有人能做到吗?

有人做到的话追加200分。另外送10个QB
展开
 我来答
money0_04c351c2
推荐于2018-05-17 · TA获得超过4142个赞
知道大有可为答主
回答量:5505
采纳率:49%
帮助的人:1624万
展开全部
这是不可能的。
你要求能逆推解密就决定了该算法是一个一对一算法。所有的一对一算法均可用查表法实现。而一旦输入的数字超过了上限,必然无法在表中查到。换句话说,假如一个17位的数字也能用该算法获得16位数字的密码,那么绝无可能做到一对一的解密。
那MD5来举例,不管输入多长,最终得到的特征码是有限长度的。所以MD5只能是一种抽样算法,必然存在相同MD5,但内容不同的一组输入。而MD5也绝对不可能逆推出源输入内容。
巧妇难为无米之炊,这里也一样,16位数字不可能唯一的标示一个17位数字的。
--------------------------------------------------
看了我的回答,直接补充提问…… 显得我好像眼神儿有问题?
忠成静0O
2013-09-02 · TA获得超过1049个赞
知道小有建树答主
回答量:1114
采纳率:100%
帮助的人:906万
展开全部
'根据你的意思,简单1位数字加密。请采纳,谢谢!如有疑问,可以追问。
Function fun1(T As String)
'加密实现方法
Randomize
m1 = Int((16 - 3 + 1) * Rnd + 3)
For i = 1 To 14
m2 = m2 & Int((9 - 1 + 1) * Rnd + 1)
Next
m2 = Format(m1, "00") & m2
Mid(m2, m1, 1) = T
fun1 = m2
End Function
Function fun2(T As String)
'解密实现方法
fun2 = Mid$(T, Val(Mid$(T, 1, 2)), 1)
End Function

Private Sub Command1_Click() '加密
Text2.Text = fun1(Text1.Text)
End Sub

Private Sub Command2_Click() '解密
Text1.Text = fun2(Text2.Text)
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ljl88900
2013-09-01 · TA获得超过2661个赞
知道大有可为答主
回答量:2197
采纳率:100%
帮助的人:2644万
展开全部

修改后的加密代码,保证每次加密结果都不一样。


请下载附件。


追问
你实验下看看,发现随便输入一个16位都能解密。 可以防止这点吗? 不然用户乱输入会导致程序误处理。
追答

源码再次修改,可以全面防止“随便输入一个16位都能解密”的情况。请验证:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
youbl
2013-08-16 · TA获得超过2510个赞
知道大有可为答主
回答量:1844
采纳率:62%
帮助的人:1679万
展开全部
直接用des或3des加密,得到的字符串,用ascii码拼接成一串数字,不足16位时,在前面或后面补0
追问
有具体方法吗?纯数字16位哦。 我看过一下加密方法,发现1位数加密出来都十几位了。 我要10位数加密后是16位数字。 有人能做到吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
空白XIAOXIAOYU
2013-08-16 · TA获得超过1188个赞
知道小有建树答主
回答量:771
采纳率:66%
帮助的人:167万
展开全部
你说的估计很难,普通的算法稍微专业点的人看下就可以分析出来,你还要没有任何规律 估计不行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式