Skip to content

Commit

Permalink
30 days of node - Day 10 : Symmetric encryption and decryption using …
Browse files Browse the repository at this point in the history
…crypto module of node.js
  • Loading branch information
glarejs committed Nov 7, 2017
1 parent 80aaac9 commit e3f3d80
Show file tree
Hide file tree
Showing 7 changed files with 163 additions and 0 deletions.
28 changes: 28 additions & 0 deletions day-10-crypto-module-part-2/enc-priv-dec-pub.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/**
Example of Asymmetric encryption
Encrypting using private key and decrypting using public key
File Name : enc-priv-dec-pub.js
Author : @nodejsera
**/
//Including the required modules
var crypto = require('crypto');
var fs = require('fs');

//Reading the Private Key
privK = {
key: fs.readFileSync('priv.key').toString(),
passphrase: 'nodejsera'
}
//Passing the text to be encrypted using private key
var buf = Buffer.from('rishabh', 'utf8');

//Encrypting the text
secretData = crypto.privateEncrypt(privK, buf);
//printing the encrypted text
console.log(secretData.toString('utf8'));
//reading the Public key
pubK = fs.readFileSync('pub.key').toString();
//decrypting the text using public key
origData = crypto.publicDecrypt(pubK, secretData)
//Printing the original content
console.log(origData.toString());
29 changes: 29 additions & 0 deletions day-10-crypto-module-part-2/enc-pub-dec-priv.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/**
Example of Asymmetric encryption
Encrypting using public key and decrypting using private key
File Name : enc-pub-dec-priv.js
Author : @nodejsera
**/
//Including the required modules
var crypto = require('crypto');
var fs = require('fs');

//Reading the Public Key
pubK = privK = fs.readFileSync('pub.key').toString();

//Passing the text to be encrypted using private key
var buf = Buffer.from('This is secret code', 'utf8');

//Encrypting the text
secretData = crypto.publicEncrypt(pubK, buf);
//printing the encrypted text
console.log(secretData.toString('utf8'));
//reading the Private key
privK = {
key: fs.readFileSync('priv.key').toString(),
passphrase: 'nodejsera'
}
//decrypting the text using public key
origData = crypto.privateDecrypt(privK, secretData)
//Printing the original content
console.log(origData.toString());
30 changes: 30 additions & 0 deletions day-10-crypto-module-part-2/priv.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,D881D8AD164DDF78

vVACPx+pbY1YEiDJj81czSGV4I0v0e0aXyMQvWJO536Yjr2JyhAt7+5o1YImoT9C
tf6q1vNo56XgzwYfVoxnH+BIjDZuRq9M8E4ebdg0ptXDvkkffQv7EebduGWVL0JW
f/GEG9DQw2VprKT84LUTIQB0o6HvnV5j8tmbQfOulwcwUFlBufa2YAH7pS+iZjfN
nrLCuCXEi5tpR+Qtptv5BIz0W36OzrjfvKQQiTKP7+HxGrC+B+6QSNNSr5kMGlH6
asIa7YQt6PnDNyySMbKwedwb5uxOZ+fAoGEHgXl/G2AS45nI++a4+k80k8l3njQH
pwn+P+1VBCUHo79uVULYJqOY0Kjkpkrm0JrZTYPcL6SYAAa0sQ4on90tRKLjR04y
CeZTWC0un2jRr225plIc6L9hbCA9eaIZM+J0LuoWNfk8yLQ1wQFlVNeH2qhlTDlM
54K2K3lFZHa1iG0KjvztVZjvf7pbv+bizKe9Cgqv6MvC5u8qesHr/OAZqc3HHZ8K
Zf5TKBejpD8XgMuYnabOiglOQ/R96WGzfMUwwGF8mvvOuB1Fz21pzxIefrVnLm0T
TlL93uiH3oKNF9TJENxoqdHsRs+dd9oUQlYysBdC6pWlLF7bm1OGLvBVvcMT0aK2
cIH7FUeNHtPo6CKp30kifB+pBEtkwKLHpL0OHvpzQ4mvTlBdgF3Wtdx/WHvM7pKL
+86pziWXEDP2As1KiAIDIEG0etuQt9DCW5fGw4DBtV7th5sl5NashDVfnpDFSDMj
vjD2w5g/H5Gv4TSyM0b5E8ZkisXSXmmbNMcghG3FON2UVz6wAWMBdgaQ+MtsAsxk
FPKs8PiEefuqonRaklpmiJyI3gS6TbW3tqT5aHLfxAIJjoe5kyix6Skh43HasVst
ztoKSMJ+UODV6+YrTSazTK9sFevf9B4otHL12KNV7lM9P1gKvUZTc8NXsBJitnOo
KWRUpCaZDo1iGma+RB/CZB5TNgnAtFM0p7rrVfzWZA1HJYVydcNKSZiCVrAAtLdy
rB4UyH7aUph28oE7+HZ0kFSFt1gbLh5rKy51mS8zWQNIugsWiMwKwruxqV4fBTAN
cY0OPHdX4RahEzB2L5I/Qt/nbq91/AuyPIq8A0XXbIgMC2BfpRvwLEBzkcyIkrsi
yCGWYNnYWwdCTWkUZV2v0BAxVLC0fzmM6IO2UTkJ/I1/1g43YirQ3S6cw9ww3ZI4
EH6xyMwY+VMCbyZSmfqXqNYWWIxuAdYEoHKZBZi2ZmM/WjbGFAd1lqnkin1eBuQs
E+SQPxUNsLbvHTNPlito9r6H+0LdjpBoH3UVMJbndYmQGAD2Gu9fLvBZwjm9GT2h
KfEhIhqPxSRZROAYioPdWJTT/ig/DZs+2m6Tac49KPrKTSMZmbT5gseG4rtOGfIf
YRImIo3N0sUAYy/8g48V0IsEQo0Vd57D53xjByiaqdC6XCYWebTSAaQGWjH/D840
E7qg4Oh+o1GT5PCJJA1Uuxc3nIrcr6JSPgVI7vbVvj81jyXrV0EI3KS5GxPn1TcP
/bMUkbX/EV9w/aOc6yfU7Uv5p3fLRvtEzHBhvo790HX9Lw9+M/5Af/sqsPEMlsKb
-----END RSA PRIVATE KEY-----
9 changes: 9 additions & 0 deletions day-10-crypto-module-part-2/pub.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo9sqaQbz3ddaxd8uQG3K
GIr98k/NS6xUxssTadR4uOgiJtcm9uknBgAAa2+RuSup60uCGW0KFiPHYfpDYzr8
V8ZnErGkl2VUEGEiduNcwvaqOcGYWu4FoOAVn6tuf62l8qChn+S5CHV2Kx2UszWS
00Gcryl/Dm/cFKZ0bmWfa1EYtMcpbEZJBM79RQKB1WL17fYs5EXkFmf5eVQ2C4O7
VtxeyrgW4ner7KpqytYc/z/XD6FZ+kEpMQcle9CvIGFi78yb8YoW+eVxgyZfloQv
X1aaRnmZMu6mLNekv1ZZSCRWLjzO5x4ODDNRqjvMpqmUTJkK4j2qrad41FiRoXDl
uQIDAQAB
-----END PUBLIC KEY-----
28 changes: 28 additions & 0 deletions day-10-crypto-module-part-2/symmetric-enc-dec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
var crypto = require('crypto'),algorithm = 'aes-256-ctr',password = 'RJ23edrf';
//Here "aes-256-cbc" is the advance encryption standard we are using for encryption.
//Text is the Confidential data which we need to encrypt using 'password'(Key).

function encrypt(text){
var cipher = crypto.createCipher(algorithm,password)
var crypted = cipher.update(text,'utf8','hex')
crypted += cipher.final('hex');
return crypted;
}

//Here "aes-256-cbc" is the advance encyption standard we used for encrytion.
//Text is the Cipher which we need to decrypt using 'password'(Key).
function decrypt(text){
var decipher = crypto.createDecipher(algorithm,password)
var dec = decipher.update(text,'hex','utf8')
dec += decipher.final('utf8');
return dec;
}

//Actual content
var text = "Nodejsera for all web development languages";
//Calling the encrypt function and printing the encrypted content
var e = encrypt(text);
console.log(e);
//calling the decrypt function and printing the decrypted content
var d = decrypt(e);
console.log(d);
30 changes: 30 additions & 0 deletions day-10-crypto-module-part-2/user.priv.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,05391439A8237D95

w492ZsqxSXeM4XnVK4TMW1DpXLf3+yJqhXdjXfPRGnVelIcPkb/zrrUtYqFKqHH+
2UHIWW5yWEJ7UxkHBd436QkePt88fFxHX8X8HTUvHtVQ/3y3TMghFSqyG/An2SDQ
AXEoYioxU/cXixIzsB00Qe9jbmsmrfId7xfPoPeSl8GBOt4N8gEfMROoGVaxyN9n
EN0u3LZRs+u2OBPgYPbMwAD8NdGPRFFL21wpAfG9z6dCC0wrTK16ecjH2+f53zeD
rRx534TO167Fy79jS1YOfsn+Aeyi1FMpinojPDQSaQ+aNGEmoY6P1hd+Xn85lz5Q
VuKkH7LDcsNfulsUTzGiL3rM9+YSgUGL1EjPmfi7eRJpWJ3jdfOUwFV96Z2baKhg
NgAfMqJhq/Gdpphdfg9KCyM6SLDXJaeaBqOM0spPvhlBAq9J7KcKsPJMAOaAttsM
qqzwzq4orknRX71HEs+qxJqd7DtgRt4khlFZkunkFpOAlzgOXVkfzKFOP3DhPkrI
Ft84DAU5MN8MIf/ZYX4VNqmM5ytnC5tf8AHSFEKdRVbSkmr/ZWN1Exfegmlgp3TR
J++UpAIwEhdI1kgCP4awvAJBcHNvtqt0fOHvuIWDiHJD8BkVWRGf9EuyWxXUHe8H
HiHm9dDHVI+fVYtQda2NzYCfxFgi+Ro3Xv1dD29FK0hBnZTxRbsOSvIQfiAB8WPA
/mdX86uhJURJB9XWAI3KgRajcQcZ9p8eNNCrebVlxqRW2kq9lUjW2g6Hein8T8xK
2UM6OVi7u9sEyqS812Iyh3jwOki77pwXm5iK/YTL8WCGixlSyLgPOUEyw7cpK0dz
ZTM8h4r60PoQXBo6nOFuUb7R6uveKL0f116s3YFijS3bmbiEOgaLrR1DJeKd/iM2
yyoWOPbDv4RGHv12+1MdyTiqlhIqlAs+/PSubTtyowJ8wvBEMDlZ9gwt48XcfudH
MSiecr3mSuAvPAdEDj/35vn74u2xOMU2a+FE4cbXhwcNSsjyP3zR+iaE8bftqYoZ
wmzgc5BujDnS5391kg6sFSfAoy5DeHcTKjffI6BdpD2TkrpfUPI5eFxX/WS3LIRu
y+a+M+5FF2pheu9s+ECal60/pbfrCmWbht0xc/cbKr6ezIKBpMTP/VK4ue2p94lW
VA1ycil1ptsjeyR8fD9ytyN+iDFBokYcYwq2YgK9Z9HdtjIsA7464Y+k/2MGQft9
3Lbyg6mgnKj4sUU66Xl2u6zGIuqNmZv0KbdvjiOBtNpl9MOZTUWDFejwaOWVW0Jx
7cFnuoF0MSjG7S1TltOzR1NUHExlndS8YG6Q/5qdb0YAwKZDx7cnrmQSvkflrJtI
FcYywrW2xiKLUShYpeWbTUD0NukttMWtYGDKit8CQpdaW7Bd8DSt40u/7PYMHv7C
Ccr5efh+JtBS40+Xam+TtZWKNHuxb7DlCPswaZvzVlgiONNjXQtLIudm9nxKOf7H
Ej5cdpk5qPsMqgj7Jsi5R6GirGah1lBvuzfXLlRjiCj4cXJ0iSWLwAZbv03IXPTj
Jt6YinRsJ/Ad+CZ3ue6AcW1KaNhu4+V8ad2vDOriNpYEReVs1Bjocg==
-----END RSA PRIVATE KEY-----
9 changes: 9 additions & 0 deletions day-10-crypto-module-part-2/user.pub.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzIUe9DwLYTHe15MKVLdw
c1Qz0UanMc1DqsXz9/vX2edjbLWaz5KSLbTU/m+iZKBqNc7AtvTuC3CSH9V64U3G
kE5qClnVptHMA7c1UzDHwA2ZldOEIGT1xhf+/xj6ts+XmXATQJooMcYAeQGOqdsr
kDWi3XUk1kunMFOzzDXGb0UXn/BNknEm/RB5niBbuP0J1mYiH9qCssR0a0YJct5p
pVq/49yN7E62JPKV/43vBOX4nxej2NzQ9GWtb8x080EA8aZ377yuSO4d+Oa+A1pq
Kr8S8FA/wthCrcyzDpBwu8oovjbRmvGZVITnuPJDesqCpUWFPrBYbMLarRHl57aM
JwIDAQAB
-----END PUBLIC KEY-----

0 comments on commit e3f3d80

Please sign in to comment.