解决方案 »

  1.   

    delete[] cKey; 不应对的,因为不是动态申请的,所以不用delete。其它的没有问题。
      

  2.   

    谢谢,已修改。但目前主要问题是输出的密文为空,
     CString strTemp(szDes); 
    这句出现了问题,求指正
      

  3.   

    原因很简单,第一个字符加密时是A^A,结果就是0。再把一个以0开始的字符串赋给CString,CString遇到0就认为字符串结尾了,后面的加密后的字符串直接被忽略了。你可以看内存里面还有一点就是,你这个代码明显有问题CString是双字节的UNICODE 编码,GetLength返回的是UNICODE字符数,实际的内存大小为其2倍。
      

  4.   

    密文A=B^C,
    明文B=A^C加密解密对应的C相同就不会有问题
      

  5.   


    这个是没法保证的吧, B是随机的,有可能和C重复B和C一样有什么关系,这个运算是可逆的,根本不用担心
      

  6.   

    字符串默认\0结尾,那么你就不要用字符串呗,用byte数组来。