当使用xor加密来加密字符串时,一切都运行得很好。但在处理字节时,它不适用于。它在k.charCodeAt(0)抛出错误,可能是什么问题?这是我的完整代码。
function Main() {
var key;
key = "thisistheencryptionkey";
WScript.Echo("Encryption started . . .");
Crypt( "C:\\xxx\\xxx\\file.exe", "C:\\xxx\\xxx\\fileenc.txt", key );
WScript.Echo("Decryption started . . .");
Crypt( "C:\\xxx\\xxx\\fileenc.txt", "C:\\xxx\\xxx\\file.exe", key );
WScript.Echo("Finished!");}
function Crypt(fileIn, fileOut, key) {
var fileInRead, objFSOFile;
objFSOFile = new ActiveXObject( "Scripting.FileSystemObject" );
var e = objFSOFile.getFile(fileIn);
var fileSize = e.size;
key = key;
while (key.length < fileSize) {
key += key;
}
var adTypeBinaryWrite = 1;
var adSaveCreateOverWrite = 2;
var BinaryStreamWrite;
BinaryStreamWrite = new ActiveXObject("ADODB.Stream");
BinaryStreamWrite.Type = adTypeBinaryWrite;
BinaryStreamWrite.Open();
var adTypeBinary = 1;
var BinaryStream;
BinaryStream = new ActiveXObject("ADODB.Stream");
BinaryStream.Type = adTypeBinary;
BinaryStream.Open();
BinaryStream.LoadFromFile(fileIn);
var k, ss, q;
i = 0;
do {
q = key.substr(i, 1);
k = BinaryStream.Read(1);
ss = q.charCodeAt(0);
BinaryStreamWrite.Write(String.fromCharCode(k.charCodeAt(0) ^ ss));
i = i + 1;
} while (!BinaryStream.EOS);
BinaryStream.close();
BinaryStreamWrite.SaveToFile(fileOut, adSaveCreateOverWrite);
BinaryStreamWrite.close();}EDIT: Error表示:对象预期错误代码: 800A138F
发布于 2021-07-27 18:28:15
在测试了许多不起作用的东西之后,这就是对我有效的方法和它的实现。
https://stackoverflow.com/questions/68538697
复制相似问题