Skip to content

Instantly share code, notes, and snippets.

@gkucmierz
Created November 7, 2022 19:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save gkucmierz/ddcd4ce55612052d320b4b3f57935fb5 to your computer and use it in GitHub Desktop.
Save gkucmierz/ddcd4ce55612052d320b4b3f57935fb5 to your computer and use it in GitHub Desktop.
// https://hackernoon.com/how-does-rsa-work-f44918df914b
const key = {
mod: 14,
pub: 5,
prv: 11,
};
const msg = 'hello';
const bits = [...msg].map(c => c.charCodeAt().toString(2).padStart(8, '0')).join('');
const bits2 = bits.match(/../g).map(c => parseInt(c, 2));
const enc = bits2.map(c => {
return (c ** key.pub) % key.mod;
});
const dec = enc.map(n => {
return (n ** key.prv) % key.mod;
});
console.log(
dec
.map(n => n.toString(2).padStart(2, '0')).join('')
.match(/.{8}/g).map(b => String.fromCharCode(parseInt(b, 2)))
.join('')
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment