首页 新闻 搜索 专区 学院

求问这段代码到底是啥意思?

0
[已解决问题] 解决于 2015-07-13 15:56
 1  public class KeyManager
 2         {
 3             private static string storebase;
 4 
 5             static KeyManager()
 6             {
 7                 storebase = ConfigurationManager.AppSettings["StoreBase"];//这句得到的string是什么?
 8 
 9             }
10 
11             public static void GetKeyBySiteID(string ID, out string Key, out string IV)
12             {
13                 string path = (storebase.EndsWith("\\") ? storebase : storebase + "\\") + ID + ".Key";//这句的string又是什么?
14                 if (File.Exists(path))
15                 {
16                     using (StreamReader reader = new StreamReader(path))
17                     {
18                         Key = reader.ReadLine();//这个Key和IV的来源是什么?多少位?
19                         IV = reader.ReadLine();
20                         reader.Close();
21                     }
22                 }
23                 else
24                 {
25                     Key = "";
26                     IV = "";
27                 }
28             }
29 }

这段是生成一组Key和IV用于3DES的。能不能用固定的Key和IV代替?用多少位的来代替?Key和IV是随便写两个还是有关联的?

zztdan的主页 zztdan | 初学一级 | 园豆:24
提问于:2015-07-13 09:24
< >
分享
最佳答案
0

1:storebase = ConfigurationManager.AppSettings["StoreBase"];//这句得到的string是什么?

你会有一个Web.config文件,ConfigurationManager.AppSettings["StoreBase"]取的是<appSettings></appSettings>这个标签里面的<add key="StoreBase" value="你去看你自己的配置文件内容">,总结,你先别去想什么加密,你先去学下一些基本的API

2:string path = (storebase.EndsWith("\\") ? storebase : storebase + "\\") + ID + ".Key";//这句的string又是什么?这就是一个3目运算符,就是根据得到你存放的文件的路径

3:Key = reader.ReadLine();//这个Key和IV的来源是什么?多少位?这就是读取你刚取到的文件的第一行

其实你“这段是生成一组Key和IV用于3DES的。能不能用固定的Key和IV代替?用多少位的来代替?Key和IV是随便写两个还是有关联的?”的这些问题,和你的代码毫无关系,你参考的代码是去你原来保存好的文件里面去对应的KEY和Value,不过这种一个ID,一个文件的方式不可取,还是先去充实自己,充实了以前难的也会很简单的,祝你好运

奖励园豆:5
稳稳的河 | 老鸟四级 |园豆:4216 | 2015-07-13 15:44

谢谢。我师傅和我说的是“用到了再学”。作为一个新手确实很多基础知识都不知道的。还是谢谢你的解答

zztdan | 园豆:24 (初学一级) | 2015-07-13 15:56
其他回答(1)
0

这个方法应该是获取DES加密所需的Key 和IV(向量)  首先这两个值没有直接关系.只是加密中所需要的两个参数

按照上面你贴出来的代码来看,是通过ID 来找到文件,然后从文件中读取Key和iv 而且 这里读到的key 和IV是同一个值.

storebase获取的是key 文件的地址 类似于 c:\basedir\mykey   或者 c:\basedir\mykey  \\ 

然后  +上ID+".KEY"  就是c:\basedir\mykey\\ 1.key  类似于这样 

 

key 和IV 本质就是一个字符串.

生活如同楼梯般的上上 | 园豆:208 (菜鸟二级) | 2015-07-13 11:08

噢噢噢噢,非常感谢!再问个问题,key和iv的长度应该是不一样的,这个类创建的二者长度是一样的吗?

支持(0) 反对(0) zztdan | 园豆:24 (初学一级) | 2015-07-13 15:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册