- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试学习 VBScript,并给自己带来了一些挑战。我想在 VBScript 中创建一个函数,在 RC4 中加密某些内容,并在 Python 中解密(本质上是相同的过程/算法,但我想验证它是否正确)。
对于我的 python 代码,我有以下内容:
def rc4crypt(data, key):
x = 0
box = range(256)
for i in range(256):
x = (x + box[i] + ord(key[i % len(key)])) % 256
box[i], box[x] = box[x], box[i]
x = 0
y = 0
out = []
for char in data:
x = (x + 1) % 256
y = (y + box[x]) % 256
box[x], box[y] = box[y], box[x]
out.append(chr(ord(char) ^ box[(box[x] + box[y]) % 256]))
return ''.join(out)
据我从互联网研究中得知,这是实现 RC4 的一种非常标准的方法。然而,当涉及到 VBScript 时,我却遇到了一些困难。
这是迄今为止我的代码:
Function RunRC4(sMessage, strKey)
Dim kLen, x, y, i, j, temp, l
Dim s(256), k(256)
'Init keystream
kLen = Len(strKey)
For i = 0 To 255
s(i) = i
l = Mid(strKey, (i Mod kLen) + 1, 1)
k(i) = Asc(Mid(strKey, (i Mod kLen) + 1, 1))
Next
j = 0
For i = 0 To 255
j = (j + k(i) + s(i)) Mod 256
temp = s(i)
s(i) = s(j)
s(j) = temp
Next
'Encode/Decode
For i = 1 To Len(sMessage)
x = (x + 1) Mod 256
y = (y + s(x)) Mod 256
temp = s(x)
s(x) = s(y)
s(y) = temp
temp1 = Asc(Mid(sMessage, i, 1))
temp2 = Chr(s((s(x) + s(y)) Mod 256))
RunRC4 = RunRC4 & Chr(temp1 Xor temp2)
Next
End Function
这与许多其他帖子非常相似。我发现了一些相关的帖子,人们提出了类似的问题,但并不完全是我正在寻找的答案:
Encrypt a string in java and decryption in VBScript using RC4
RC4 decryption with key in Python
正如您可能知道的那样,两者都使用非常相似的脚本。但在尝试解码时似乎都无法正常工作。我还查看了其他地方,包括类似的算法:
https://bytes.com/topic/access/insights/906671-rc4-encryption-algorithm-vba-vbscript
有人可以帮忙吗?最好知道您是否能够成功运行每个函数。理想情况下,目标是使用 VBScript 运行加密,获取输出并使用 Python 解密,并获得预期的原始结果。
最佳答案
问题出在编码上。只需查看 Python 文档 chr()
function
Returns a character (a string) from an integer (represents unicode code point of the character)
而在 VBScript 中 Chr()
function
Returns the character associated with the specified ANSI character code
这并不等效,您需要在 VBScript 中使用 ChrW()
函数。
ChrW is provided for 32-bit platforms that use Unicode characters. Its argument is a Unicode (wide) character code, thereby avoiding the conversion from ANSI to Unicode.
此外,返回字符代码时,您需要使用 AscW()
函数而不是 Asc()
function相当于Python ord()
function .
<小时/>AscW is provided for 32-bit platforms that use Unicode characters. It returns the Unicode (wide) character code, thereby avoiding the conversion from Unicode to ANSI.
关于python - 使用 VBScript 和 Python 的 RC4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54896169/
我很好奇这两个模块在实践中有什么区别吗?如果不是,为什么会有这两个副本? 最佳答案 std::rc::Rc只是 alloc::rc::Rc 的再导出.你可以在src/std/lib.rs中看到整个rc
我注意到 rust 书推荐使用 Rc::clone(&rc)在rc.clone()如下: use std::rc::Rc; let five = Rc::new(5); // recommended
我需要将我现有的 Angular 2 RC 1 应用程序迁移到 Angular 2 RC 4。作为其中的一部分,我还需要将我现有的表单迁移到 Angular 2 RC 4 New Forms。 任何人
如何测试 Selenium RC 中哪个元素具有焦点? 最佳答案 当我遇到同样的问题时,出于各种原因,其他答案都不适合我。我最终做了以下操作(使用 Java 中的 Selenium 2.0 WebDr
Horse是一个实现 Animal 的结构特征。我有一个 Rc和一个需要接收 Rc 的函数, 所以我想从 Rc 转换至 Rc . 我这样做了: use std::rc::Rc; struct Hors
代码如下所示: // Simplified pub trait Field: Send + Sync + Clone { fn name(&self); } #[deriving(Clone)
在 /etc/rc[06].d/ 目录中的程序启动之后,系统的启动就已经完成。不过,我们总有一些程序是需要在系统启动之后随着系统一起启动的。这时我们并不需要自己把需要启动的服务链接到 /etc/rc3
我正在使用 selenium rc,我需要测试 flash。我需要单击 Flash 播放器上的允许按钮。 我只是需要一些帮助才能开始? 最佳答案 通常,除非在 Flash 开发人员的帮助下将 Sele
我知道 PhantomData旨在使用数据类型定义中的生命周期或类型参数,否则这些参数将不会被使用。我最近在查看 Rc 的定义在Rust std lib并注意到它似乎使用了 PhantomData ,
谁能给我解释一下为什么Rc<>不是 Copy ? 我正在编写使用大量共享指针的代码,并且必须输入 .clone()总是让我心烦意乱。 在我看来Rc<>应该只包含一个固定大小的指针,所以类型本身应该是
我想创建一个 Rc因为我想减少跟踪访问 Rc 的 2 个指针的间接访问需要。我需要使用 Rc因为我确实拥有共享所有权。我在 another question 中详细说明关于我的字符串类型的更具体的问题
Selenium IDE 和 Selenium RC 的功能有什么区别? 最佳答案 Selenium IDE 是一个 firefox 插件,它为您提供了用于记录测试的基本记录器。这些测试使用关键字记录
我正在尝试使用 Selenium RC (Java) 在 Paypal-Sandbox 上购买东西,但它不起作用。 我用 Selenium IDE (Firefox AddOn) 试过了,它确实有效。
我有一个 Rc>但需要得到一个Rc从中。像这样的东西: let rc_option: Rc> = Rc::new(Ok(value)); let ok_value: Rc = rc_option.ma
我知道在 matplotlib 中,您可以使用 rc 或 rcParams 来自定义绘图的样式。但是,这些函数似乎存在于两个级别,例如 matplotlib.rc 与 matplotlib.pyplo
Rust 文档涵盖 Rc>相当广泛,但不涉及 RefCell> ,我现在遇到了。 这些是否有效地给出了相同的结果?它们之间有重要区别吗? 最佳答案 Do these effectively give
我有一段代码是这样的: use std::cell::RefCell; use std::rc::Rc; struct A(bool); impl A { fn get_ref(&self)
Rust 文档涵盖 Rc>相当广泛,但不涉及 RefCell> ,我现在遇到了。 这些是否有效地给出了相同的结果?它们之间有重要区别吗? 最佳答案 Do these effectively give
我试图获得引用计数 Rc从 HashMap 并将其放入不同的容器 ( Vec )。 原以为这会起作用(通过增加引用计数),但我却收到了一个“expected struct std::rc::Rc ,
前言 我们在ubuntu下要把一个程序加入开机启动,一般可以通过修改rc.local来完成,但ubuntu下有两个rc.local文件。分别是/etc/rc.local和/etc/init.d/r
我是一名优秀的程序员,十分优秀!