Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Encode WebSocket Syntax: $encodews(messageinplaintexthere)
- alias encodews {
- var %hash $mask, %hashcounter 1, %messagecounter 1
- bset -t &message 1 $1-
- var %message $bvar(&message,1-)
- while (%messagecounter <= $gettok(%message,0,32)) {
- %message = $puttok(%message,$xor($gettok(%hash,%hashcounter,32),$gettok(%message,%messagecounter,32)),%messagecounter,32)
- inc %messagecounter
- %hashcounter = $iif(%hashcounter < 4,$calc(%hashcounter + 1), 1)
- }
- return $regsubex(129 $getlength($1-) %hash %message,/([0-9]{1,3})\s|$/gi,$+($base(\t,10,16),$chr(32)))
- }
- alias -l mask {
- return $+($r(1,255),$chr(32),$r(1,255),$chr(32),$r(1,255),$chr(32),$r(1,255))
- }
- alias -l getlength {
- if ($len($1-) < 126) {
- var %len $base($+(1,$base2($len($1-),7)),2,10)
- }
- else {
- noop $regex($base2($len($1-),8),/([01]*)([01]{8})$/)
- var %len $+(254,$chr(32),$iif($base($regml(1),2,10),$v1,0),$chr(32),$base($regml(2),2,10))
- }
- return %len
- }
- alias -l base2 {
- var %base $base($1,10,2),%len $2
- return $+($str(0,$calc(%len - $len(%base))),%base)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement