您的位置:程序门 -> .net技术 ->



3des加密问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


3des加密问题
发表于:2007-08-09 09:42:09 楼主
各位好,最近作一个东西,用3des加密,不过key和iv都是自己手工写的,请问,有没有什么类库方法或者自定义的算法能够生成key和iv啊?我看tripledescryptoserviceprovider的generatekey()都是不返回值的,仅对本次有效。可是我想,生成一个key,iv以后保存下来,发给我的客户端去,请不吝赐教。谢谢
发表于:2007-08-09 10:12:511楼 得分:0
沙发,不懂,帮顶,接分
发表于:2007-08-09 15:40:212楼 得分:0
为什么我的一个24位的byte数组,用convert.tobase64string转换成字符串,就变成32位了?谁给解释一下?
发表于:2007-08-09 15:42:333楼 得分:0
去这里找找   http://www.aspnet168.com.cn/
发表于:2007-08-09 16:02:024楼 得分:0
tripledescryptoserviceprovider   trides   =   new   tripledescryptoserviceprovider();
                trides.generateiv();
                trides.generatekey();

                string   strkey   =   convert.tobase64string(trides.key);
                string   striv   =   convert.tobase64string(trides.iv);

我现在想将自动生成的byte数组,转化成字符串,但是明明trides.key的长度是24位,我用tobase64string转换以后,字符串缺有32位,问问为什么?
发表于:2007-08-09 22:46:195楼 得分:0
我用的方法是手工写出一个key和iv,然后全部地方都用这个。也就是说,我所有加密的数据,都可以用这个函数解密。如果你是随机密码的话,那么你解密时,必须要能拿到这个key和vi才行。
vi可以直接取key的数组也可以阿,不一定要生成。

你的方法没有问题
你的数组经过base64编码后,产生了32个字符,这是正确的
你可以通过以下方式将这个32字符还原为数组

                        byte[]   iv   =   convert.frombase64string(striv);
                        byte[]   key   =   convert.tobase64string(strkey);


另外,你直接保存trides.key,传到客户端不更好吗?为什么要转为字符串?
发表于:2007-08-11 17:40:086楼 得分:0
请看看base64编码,一般对字节序列编码后得到的串都要比原来的长。保存密钥和初始向量是可以的,但是一般要用公钥算法对其进行加密


快速检索

最新资讯
热门点击