【发布时间】:2021-10-02 21:56:03
【问题描述】:
使用异或加密对字符串进行加密时,一切正常。但是在处理字节时,它不起作用。它在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();}
编辑: 错误说:预期对象 错误代码:800A138F
【问题讨论】:
-
抛出错误 - 什么错误?
-
@Bravo 错误说:对象预期错误代码:800A138F
-
错误在哪一行?
-
@user692942 第 44 行
BinaryStreamWrite.Write(String.fromCharCode(k.charCodeAt(0) ^ ss)); -
确定是
String.吗? JScript 区分大小写并遵循 camelCase,因此希望它是string.。与 VBScript 不同,大小写在 JScript 中很重要。
标签: encryption xor jscript wsh