# .\n"); exit(1); } if (preg_match(KEY_PATTERN, $argv[1]) !== 1) { fputs(STDERR, "\nInvalid .\n"); exit(1); } if (preg_match(KEY_PATTERN, $argv[2]) !== 1) { fputs(STDERR, "\nInvalid .\n"); exit(1); } if (strlen($argv[3]) !== 6) { fputs(STDERR, "\nInvalid .\n"); exit(1); } $key3 = $argv[3]; $key3 = str_repeat($key3, strlen($key3)); $key1 = hex2bin($argv[1]) ^ $key3; $key2 = hex2bin($argv[2]) ^ $key3; $plaintext = openssl_decrypt(CIPHERTEXT, CIPHER_ALGORITHM, $key1, 0, $key2); if (!password_verify($plaintext, PLAINTEXT_HASH)) { fputs(STDERR, "\n, or is incorrect.\n"); exit(1); } echo "${plaintext}\n"; $a = <<<'nil' =end require 'digest/md5' ds = %w[ 35589a1cc0b3ca90fc52d0e711c0c434 a690a0615820e2e5c53901d8b8958509 fca6a9b459e702fa93513c6a8b8c5dfe ] k = '' Module.constants.map(&:to_s).sort.each do |i| d = Digest::MD5.hexdigest(i) k += i if ds.include?(d) end puts 'key1 is: ' + Digest::MD5.hexdigest(k) ' =cut use utf8; use Digest::MD5 qw(md5_hex); my @ds = qw[ 30b92d3052fef34fca8f30d42bb1e395 6836a6ebcbbf861ed2db0da1babef4bb 98f5665676b2179cea2e607dacddc2d0 ]; my $k = ''; foreach my $i (sort keys %INC) { my $d = md5_hex($i); $k .= $i if grep /^$d$/, @ds; } print "key2 is: " . md5_hex($k) . "\n"; '# '; nil;