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是随便写两个还是有关联的?
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,一个文件的方式不可取,还是先去充实自己,充实了以前难的也会很简单的,祝你好运
谢谢。我师傅和我说的是“用到了再学”。作为一个新手确实很多基础知识都不知道的。还是谢谢你的解答
这个方法应该是获取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 本质就是一个字符串.
噢噢噢噢,非常感谢!再问个问题,key和iv的长度应该是不一样的,这个类创建的二者长度是一样的吗?