Jump to content
Sign in to follow this  
y4to

[source] Binário Encoder/Decoder (Ruby)

Recommended Posts

Salve guys! Vim aqui disponibilizar um script simples pra vocês, ele é um encoder/decoder de binário bem simples feito em ruby. Talvez possa servir de material p/ estudo pra quem se interessa pela lang ❤️

#!/usr/bin/ruby

# by @y4to0x
# yt: channel/UCHy2rxLxzUXkgqojMWgksSQ

def enc(s)
	s.each_char do |chr|
		print chr.unpack('b*').join, ' '
	end
end

def dec(s)
	s.split.each do |chr|
		if chr =~ /\d/
			print chr.split.pack('b*')
		else
			raise 'invalid binary string!'
		end
	end
end

str, opt = $*[0], $*[1]

begin
	unless str == nil and opt == nil
		if opt == 'enc'
			enc(str)
		elsif opt == 'dec'
			dec(str)
		else
			raise 'invalid option!'
		end
	else
		raise "missing string or option!\nuse: bin-decoder.rb \"str\" enc/dec"
	end
rescue
	puts $!
end

Pra usar vai aqui umas prints pra vocês não perderem a cabeça.

Encriptando string para binary:

Primeiramente digitamos o nome do script, a palavra e a opção (enc/dec)

No caso se for enc, qualquer valor será aceito, já no dec, apenas valores binários serão aceitos ( ou quase isso \o)

Screenshot_1.png

Obtemos a string codificada:

Screenshot_2.png

 

Agora para decodificarmos o binário, basta por a string binária aonde está escrito "palavra aqui" ( entre aspas para evitar erros ), e usar a opção dec ( decode )

Screenshot_3.png

Obtemos a string original ^^

Screenshot_4.png

 

Vlw guys façam bom proveito, ou tentem \o, By: @y4to0x

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.