Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #**Algorithms by Peter O.
- #**Converted to Ruby by Narzew
- #**Implemented by Narzew
- #**Functions
- module NRGSS
- def self.swap32(x)
- return (((x>>24)&0x000000FF)|((x>>8)&0x0000FF00)|((x<<8)&0x00FF0000)|((x<<24)&0xFF000000))
- end
- def self.swap8(x)
- return (((x>>8)&0x00FF)|((x<<8)&0xFF00))
- end
- def self.rlc(x)
- return ((((x)&0x7F)<<1)|(((x)&0x80)>>7))
- end
- def self.rrc(x)
- return ((((x)&0xFE)>>1)|(((x)&0x01)<<7))
- end
- def self.swap(x)
- return ((((x)&0xF0)>>4)|(((x)&0x0f)<<4))
- end
- def self.sla(x)
- return (((x)<<1)&0xFE)
- end
- def self.sla16(x)
- return (((x)<<1)&0xFFFE)
- end
- end
- #**Implementation - for example ;)
- $val = 70
- 10.times{|x|
- puts "================="
- puts "===ROUND #{x+1} ==="
- puts "VALUE IS #{$val}"
- puts "================="
- $a = NRGSS.swap32($val)
- $b = NRGSS.swap8($val)
- $c = NRGSS.swap32($a)
- $d = NRGSS.swap8($b)
- $e = NRGSS.rlc($val)
- $f = NRGSS.rrc($e)
- $g = NRGSS.swap($val)
- $h = NRGSS.swap($g)
- $i = NRGSS.sla($val)
- $j = NRGSS.sla($i)
- $k = NRGSS.sla16($val)
- $l = NRGSS.sla16($k)
- puts ("Swap 32 encrypt result #{$a}")
- puts ("Swap 8 encrypt result #{$b}")
- puts ("Swap 32 decrypt result #{$c}")
- puts ("Swap 8 decrypt result #{$d}")
- puts ("Rlc conversion result #{$e}")
- puts ("Rrc conversion result #{$f}")
- puts ("Swap encrypt result #{$g}")
- puts ("Swap decrypt result #{$h}")
- puts ("Sla transform 1 result #{$i}")
- puts ("Sla transform 2 result #{$j}")
- puts ("Sla16 transfrom 1 result #{$k}")
- puts ("Sla16 transform 2 result #{$l}")
- $val = (($val*7+3+rand(999)&0xFFFF)|($val*6+4+rand(888)&0x00FF))*2+113+rand(999)
- }
- $stdin.gets
- #End of code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement