想用C#实现txt文件的移动加密,txt经过加密之后生成一个exe文件,打开时得输入正确的密码才能读取里面的内容,否则拒绝访问,该怎样实现这功能呢?我是想着加密后把密文存进一个txt文件,然后和加密目标txt文件一起放进一个exe文件,访问的通过读取密文进行匹配验证,请问这个外壳exe(即父程序)怎样读取子程序exe里面那个放着密文的txt和加密目标txt文件呢?

解决方案 »

  1.   

    不谈加密,谈一谈制作一个自我捆绑exe的思路。我们估算一个exe的长度,不需要精确,只要足够就可以了。一般exe大小100kb,我们就约定偏移量为1MB。吧。这个值保留得太大,产生的exe就太大了。太小的话,exe本身保留的大小又不足。
    我们编写一个exe文件,它获得自身exe路径和文件名,用共享只读权限打开自身文件,移动偏移量到上面约定的地址,比如1MB。然后readtoend,把内容显示在文本框中,这样,自我捆绑exe就做好了。
    我们还需要写一个制作工具,方法是,让用户选择一个文本文件,读取它,然后拷贝一份没有捆绑的exe副本,移动指针到1MB,写入文本文件的内容,保存,即可。至于加密,你说的明文保存也可以。不过最好用加密算法加密下。
      

  2.   


    请问下你说的制作工具是指我说的那个父程序exe么?其实我想问C#可不可以直接把exe当成一个文件夹而对里面的东西进行读取修改呢?
      

  3.   

    因为exe在执行的时候会被锁定,所以修改起来比较麻烦。一些变通的方法可以,比如,写入临时文件,再删除当前文件,或者释放出来一个程序完成修改,或者获取system权限,跳过文件锁定,再修改。其实如果你只需要这样的功能,没必要自己写,winrar wimmount 都很好用。还有 microsoft private folder