这个AS是什么意思(Action Script code)

时间:2012-02-28 18:08:40

标签: flash encryption actionscript

我很困惑,因为我不是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. >>>^
  2. (var8 >>> 3 ^ var7 << 4)
  3. var11 = var13 >>> 2 & 3

4 个答案:

答案 0 :(得分:5)

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

>>>bitwise unsigned right shift运算符;它将位移到右边而不保留值的符号。

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

表达式(var8 >>> 3 ^ var7 << 4)表示:

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

  2. 结果按位与var7进行异或;

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

  4. 表达式var11 = var13 >>> 2 & 3表示:

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

    2. 结果bitwise AND带有3;

    3. 已分配到var11

答案 1 :(得分:0)

答案 2 :(得分:0)

看起来反编译给我......很难想象有人能够确定地告诉操作员优先&^,另一方面使用i = i + 1 /无类型变量。 。由于有15个变量,感觉就像是MD5算法......不知道你为什么要反编译它,如果是这样的话......

因此,您还需要了解它:运算符precedense and associativity

答案 3 :(得分:0)

这是XXTEA的实施的一部分。

XXTEA的定义适用于无符号整数。 因此,实现必须使用无符号右移运算符(即&gt;&gt;&gt;但不是&gt;&gt;)。 左移(&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&gt;