【问题标题】:What is the meaning of this AS (Action Script code)这个AS是什么意思(Action Script code)
【发布时间】:2012-02-28 18:08:39
【问题描述】:

我对此感到困惑,因为我不是 AS 专家

while (var6 < (var5 - 1))  
{
 var8 = var3[(var6 + 1)];  
 var10 = (var7 >>> 5 ^ var8 << 2) + (var8 >>> 3 ^ var7 << 4) ^ (var13 ^ var8) + (var4[var6   & 3 ^ var11] ^ var7);  
 var var14:* = var3[var6] + var10;  
 var3[var6] = var3[var6] + var10;  
 var7 = var14;  
 var6 = var6 + 1;  
}  

我想确切知道的是这些运算符的含义:

  1. &gt;&gt;&gt;^
  2. (var8 &gt;&gt;&gt; 3 ^ var7 &lt;&lt; 4)
  3. var11 = var13 &gt;&gt;&gt; 2 &amp; 3

【问题讨论】:

    标签: flash encryption actionscript


    【解决方案1】:

    这些都被称为按位运算符,即通过二进制表示来操作整数值的运算符。您可以在 ActionScript in Adobe's documentation 中找到运算符的完整参考。

    &gt;&gt;&gt;bitwise unsigned right shift 运算符;它向右移动位而不保留值的符号。

    ^bitwise XOR 运算符。它需要两个操作数并对它们的位执行 XOR 操作。

    表达式(var8 &gt;&gt;&gt; 3 ^ var7 &lt;&lt; 4)表示:

    1. var8 向右位移 3 次(除以 2^3);

    2. var7 按位异或的结果;

    3. 结果向左位移 4 次(乘以 2^4)。

    而表达式var11 = var13 &gt;&gt;&gt; 2 &amp; 3 的意思是:

    1. var13 向右位移 2 次(除以 2^2);

    2. 结果bitwise ANDed 与3;

    3. 分配给var11

    【讨论】:

    • 感谢 BoltClock 的帮助。我偷了一个小问题 >> 和 >>> 从技术上讲有什么区别。
    • @Zarboot: &gt;&gt; 保留标志;即-8 &gt;&gt; 1 会给你-4 带负号,但-8 &gt;&gt;&gt; 1 会给你一个不同的结果,因为它不保留符号位(最左边的位)。另见:en.wikipedia.org/wiki/Two%27s_complement
    • 您可以通过单击左侧的复选标记将答案标记为已接受。欢迎来到本站!
    【解决方案2】:

    它正在做按位数学http://www.moock.org/asdg/technotes/bitwise

    【讨论】:

      【解决方案3】:

      在我看来是反编译的......很难想象有人可以肯定地告诉运算符的优先级 &amp;^ 并且另一方面使用 i = i + 1 / 无类型变量......因为有像 15变量的,感觉就是MD5算法……不知道你为什么要反编译,如果是这样的话……

      因此,您还需要非常了解它:运营商precedense and associativity

      【讨论】:

      • 确实如此。我在网上找到了这个,但我想知道所有这些运算符的含义是什么。是的,它是 TEA 实施的一部分。还是谢谢
      【解决方案4】:

      它是XXTEA 实现的一部分。

      XXTEA 根据定义适用于无符号整数。 因此,实现必须使用无符号右移运算符(即 >>> 但不是 >>)。 左移 (

      【讨论】:

        猜你喜欢
        • 2011-09-25
        • 1970-01-01
        • 2012-02-22
        • 2012-07-26
        • 2011-04-11
        • 2018-10-29
        • 1970-01-01
        • 2022-12-14
        • 1970-01-01
        相关资源
        最近更新 更多