#!/usr/bin/perl -w # cirno2.pl - Don Yang (uguu.org) # # 09/17/08 binmode STDIN; $buffer = ""; while(<>) { $buffer .= $_; for(; length($buffer) > 59; $buffer = substr($buffer, 60)) { $output = ""; foreach $x (unpack "V15", $buffer) { $a = $x % 90; $b = ($x /= 90) % 90; $c = ($x /= 90) % 90; $d = ($x /= 90) % 90; $e = $x / 90; $output .= pack "C*", $a + 33, $b + 33, $c + 33, $d + 33, $e + 33; } print "$output\n"; } } $remainder = (length($buffer) % 4) ? 4 - (length($buffer) % 4) : 0; $output = ""; foreach $x (unpack "V*", "$buffer\0\0\0") { $a = $x % 90; $b = ($x /= 90) % 90; $c = ($x /= 90) % 90; $d = ($x /= 90) % 90; $e = $x / 90; $output .= pack "C*", $a + 33, $b + 33, $c + 33, $d + 33, $e + 33; } for(; $remainder > 0; $remainder--) { chop $output; } print "$output\n";