home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / com / adobe / crypto / MD5.as
Encoding:
Text File  |  2010-06-23  |  10.0 KB  |  189 lines

  1. package com.adobe.crypto
  2. {
  3.    import com.adobe.utils.IntUtil;
  4.    import flash.utils.ByteArray;
  5.    
  6.    public class MD5
  7.    {
  8.       public static var digest:ByteArray;
  9.       
  10.       public function MD5()
  11.       {
  12.          super();
  13.       }
  14.       
  15.       private static function ff(param1:int, param2:int, param3:int, param4:int, param5:int, param6:int, param7:int) : int
  16.       {
  17.          return transform(f,param1,param2,param3,param4,param5,param6,param7);
  18.       }
  19.       
  20.       private static function f(param1:int, param2:int, param3:int) : int
  21.       {
  22.          return param1 & param2 | ~param1 & param3;
  23.       }
  24.       
  25.       private static function g(param1:int, param2:int, param3:int) : int
  26.       {
  27.          return param1 & param3 | param2 & ~param3;
  28.       }
  29.       
  30.       private static function h(param1:int, param2:int, param3:int) : int
  31.       {
  32.          return param1 ^ param2 ^ param3;
  33.       }
  34.       
  35.       private static function i(param1:int, param2:int, param3:int) : int
  36.       {
  37.          return param2 ^ (param1 | ~param3);
  38.       }
  39.       
  40.       private static function transform(param1:Function, param2:int, param3:int, param4:int, param5:int, param6:int, param7:int, param8:int) : int
  41.       {
  42.          var _loc9_:int = param2 + int(param1(param3,param4,param5)) + param6 + param8;
  43.          return IntUtil.rol(_loc9_,param7) + param3;
  44.       }
  45.       
  46.       private static function hh(param1:int, param2:int, param3:int, param4:int, param5:int, param6:int, param7:int) : int
  47.       {
  48.          return transform(h,param1,param2,param3,param4,param5,param6,param7);
  49.       }
  50.       
  51.       public static function hash(param1:String) : String
  52.       {
  53.          var _loc2_:ByteArray = new ByteArray();
  54.          _loc2_.writeUTFBytes(param1);
  55.          return hashBinary(_loc2_);
  56.       }
  57.       
  58.       private static function createBlocks(param1:ByteArray) : Array
  59.       {
  60.          var _loc2_:Array = new Array();
  61.          var _loc3_:int = param1.length * 8;
  62.          var _loc4_:int = 255;
  63.          var _loc5_:int = 0;
  64.          while(_loc5_ < _loc3_)
  65.          {
  66.             _loc2_[int(_loc5_ >> 5)] = _loc2_[int(_loc5_ >> 5)] | (param1[_loc5_ / 8] & _loc4_) << _loc5_ % 32;
  67.             _loc5_ += 8;
  68.          }
  69.          _loc2_[int(_loc3_ >> 5)] = _loc2_[int(_loc3_ >> 5)] | 128 << _loc3_ % 32;
  70.          _loc2_[int((_loc3_ + 64 >>> 9 << 4) + 14)] = _loc3_;
  71.          return _loc2_;
  72.       }
  73.       
  74.       public static function hashBinary(param1:ByteArray) : String
  75.       {
  76.          var _loc6_:int = 0;
  77.          var _loc7_:int = 0;
  78.          var _loc8_:int = 0;
  79.          var _loc9_:int = 0;
  80.          var _loc2_:int = 1732584193;
  81.          var _loc3_:int = -271733879;
  82.          var _loc4_:int = -1732584194;
  83.          var _loc5_:int = 271733878;
  84.          var _loc10_:Array = createBlocks(param1);
  85.          var _loc11_:int = int(_loc10_.length);
  86.          var _loc12_:int = 0;
  87.          while(_loc12_ < _loc11_)
  88.          {
  89.             _loc6_ = _loc2_;
  90.             _loc7_ = _loc3_;
  91.             _loc8_ = _loc4_;
  92.             _loc9_ = _loc5_;
  93.             _loc2_ = ff(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 0)],7,-680876936);
  94.             _loc5_ = ff(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 1)],12,-389564586);
  95.             _loc4_ = ff(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 2)],17,606105819);
  96.             _loc3_ = ff(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 3)],22,-1044525330);
  97.             _loc2_ = ff(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 4)],7,-176418897);
  98.             _loc5_ = ff(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 5)],12,1200080426);
  99.             _loc4_ = ff(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 6)],17,-1473231341);
  100.             _loc3_ = ff(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 7)],22,-45705983);
  101.             _loc2_ = ff(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 8)],7,1770035416);
  102.             _loc5_ = ff(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 9)],12,-1958414417);
  103.             _loc4_ = ff(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 10)],17,-42063);
  104.             _loc3_ = ff(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 11)],22,-1990404162);
  105.             _loc2_ = ff(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 12)],7,1804603682);
  106.             _loc5_ = ff(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 13)],12,-40341101);
  107.             _loc4_ = ff(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 14)],17,-1502002290);
  108.             _loc3_ = ff(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 15)],22,1236535329);
  109.             _loc2_ = gg(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 1)],5,-165796510);
  110.             _loc5_ = gg(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 6)],9,-1069501632);
  111.             _loc4_ = gg(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 11)],14,643717713);
  112.             _loc3_ = gg(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 0)],20,-373897302);
  113.             _loc2_ = gg(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 5)],5,-701558691);
  114.             _loc5_ = gg(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 10)],9,38016083);
  115.             _loc4_ = gg(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 15)],14,-660478335);
  116.             _loc3_ = gg(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 4)],20,-405537848);
  117.             _loc2_ = gg(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 9)],5,568446438);
  118.             _loc5_ = gg(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 14)],9,-1019803690);
  119.             _loc4_ = gg(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 3)],14,-187363961);
  120.             _loc3_ = gg(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 8)],20,1163531501);
  121.             _loc2_ = gg(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 13)],5,-1444681467);
  122.             _loc5_ = gg(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 2)],9,-51403784);
  123.             _loc4_ = gg(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 7)],14,1735328473);
  124.             _loc3_ = gg(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 12)],20,-1926607734);
  125.             _loc2_ = hh(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 5)],4,-378558);
  126.             _loc5_ = hh(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 8)],11,-2022574463);
  127.             _loc4_ = hh(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 11)],16,1839030562);
  128.             _loc3_ = hh(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 14)],23,-35309556);
  129.             _loc2_ = hh(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 1)],4,-1530992060);
  130.             _loc5_ = hh(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 4)],11,1272893353);
  131.             _loc4_ = hh(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 7)],16,-155497632);
  132.             _loc3_ = hh(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 10)],23,-1094730640);
  133.             _loc2_ = hh(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 13)],4,681279174);
  134.             _loc5_ = hh(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 0)],11,-358537222);
  135.             _loc4_ = hh(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 3)],16,-722521979);
  136.             _loc3_ = hh(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 6)],23,76029189);
  137.             _loc2_ = hh(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 9)],4,-640364487);
  138.             _loc5_ = hh(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 12)],11,-421815835);
  139.             _loc4_ = hh(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 15)],16,530742520);
  140.             _loc3_ = hh(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 2)],23,-995338651);
  141.             _loc2_ = ii(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 0)],6,-198630844);
  142.             _loc5_ = ii(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 7)],10,1126891415);
  143.             _loc4_ = ii(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 14)],15,-1416354905);
  144.             _loc3_ = ii(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 5)],21,-57434055);
  145.             _loc2_ = ii(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 12)],6,1700485571);
  146.             _loc5_ = ii(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 3)],10,-1894986606);
  147.             _loc4_ = ii(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 10)],15,-1051523);
  148.             _loc3_ = ii(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 1)],21,-2054922799);
  149.             _loc2_ = ii(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 8)],6,1873313359);
  150.             _loc5_ = ii(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 15)],10,-30611744);
  151.             _loc4_ = ii(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 6)],15,-1560198380);
  152.             _loc3_ = ii(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 13)],21,1309151649);
  153.             _loc2_ = ii(_loc2_,_loc3_,_loc4_,_loc5_,_loc10_[int(_loc12_ + 4)],6,-145523070);
  154.             _loc5_ = ii(_loc5_,_loc2_,_loc3_,_loc4_,_loc10_[int(_loc12_ + 11)],10,-1120210379);
  155.             _loc4_ = ii(_loc4_,_loc5_,_loc2_,_loc3_,_loc10_[int(_loc12_ + 2)],15,718787259);
  156.             _loc3_ = ii(_loc3_,_loc4_,_loc5_,_loc2_,_loc10_[int(_loc12_ + 9)],21,-343485551);
  157.             _loc2_ += _loc6_;
  158.             _loc3_ += _loc7_;
  159.             _loc4_ += _loc8_;
  160.             _loc5_ += _loc9_;
  161.             _loc12_ += 16;
  162.          }
  163.          digest = new ByteArray();
  164.          digest.writeInt(_loc2_);
  165.          digest.writeInt(_loc3_);
  166.          digest.writeInt(_loc4_);
  167.          digest.writeInt(_loc5_);
  168.          digest.position = 0;
  169.          return IntUtil.toHex(_loc2_) + IntUtil.toHex(_loc3_) + IntUtil.toHex(_loc4_) + IntUtil.toHex(_loc5_);
  170.       }
  171.       
  172.       private static function gg(param1:int, param2:int, param3:int, param4:int, param5:int, param6:int, param7:int) : int
  173.       {
  174.          return transform(g,param1,param2,param3,param4,param5,param6,param7);
  175.       }
  176.       
  177.       private static function ii(param1:int, param2:int, param3:int, param4:int, param5:int, param6:int, param7:int) : int
  178.       {
  179.          return transform(i,param1,param2,param3,param4,param5,param6,param7);
  180.       }
  181.       
  182.       public static function hashBytes(param1:ByteArray) : String
  183.       {
  184.          return hashBinary(param1);
  185.       }
  186.    }
  187. }
  188.  
  189.