add lib crypto

This commit is contained in:
tykayn 2021-02-09 18:35:29 +01:00
parent 1ab5255bfa
commit 4df2e00cbe
3 changed files with 35 additions and 29 deletions

5
package-lock.json generated
View File

@ -6515,6 +6515,11 @@
"which": "^1.2.9" "which": "^1.2.9"
} }
}, },
"crypto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz",
"integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig=="
},
"crypto-browserify": { "crypto-browserify": {
"version": "3.12.0", "version": "3.12.0",
"resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",

View File

@ -47,6 +47,7 @@
"bulma": "^0.9.0", "bulma": "^0.9.0",
"bulma-switch": "^2.0.0", "bulma-switch": "^2.0.0",
"chart.js": "^2.9.3", "chart.js": "^2.9.3",
"crypto": "^1.0.1",
"fork-awesome": "^1.1.7", "fork-awesome": "^1.1.7",
"ng2-charts": "^2.3.0", "ng2-charts": "^2.3.0",
"ngx-clipboard": "^13.0.0", "ngx-clipboard": "^13.0.0",

View File

@ -1,6 +1,7 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
// eslint-disable-next-line @typescript-eslint/no-var-requires // eslint-disable-next-line @typescript-eslint/no-var-requires
const crypto = require('crypto');
import * as Crypto from 'crypto';
// documentation: // documentation:
// https://medium.com/@spatocode/symmetric-encryption-in-javascript-bcb5fd14c273 // https://medium.com/@spatocode/symmetric-encryption-in-javascript-bcb5fd14c273
// https://nodejs.org/api/crypto.html // https://nodejs.org/api/crypto.html
@ -13,9 +14,9 @@ export class CipheringComponent implements OnInit {
public plainText = 'le texte à chiffrer, coucou !'; public plainText = 'le texte à chiffrer, coucou !';
public cipheredText = ''; public cipheredText = '';
algorithm = 'aes-192-cbc'; algorithm = 'aes-192-cbc';
public salt = crypto.randomBytes(16); // public salt = Crypto.randomBytes(16);
public initial_vector = crypto.randomBytes(16); // public initial_vector = Crypto.randomBytes(16);
public key = ''; public key;
public otherCipheredText: any; public otherCipheredText: any;
constructor() {} constructor() {}
@ -25,34 +26,33 @@ export class CipheringComponent implements OnInit {
} }
encrypt(someText) { encrypt(someText) {
this.key = crypto.scryptSync(someText, 'salt', 24); // this.key = Crypto.scryptSync(someText, 'salt', 24);
this.initial_vector = crypto.randomBytes(16); // this.initial_vector = Crypto.randomBytes(16);
//
const cipher = crypto.createCipheriv(this.algorithm, this.key, this.initial_vector); // const cipher = Crypto.createCipheriv(this.algorithm, this.key, this.initial_vector);
//
cipher.on('readable', () => { // cipher.on('readable', () => {
this.cipheredText = cipher.read().toString('hex'); // this.cipheredText = cipher.read().toString('hex');
console.log(cipher.read().toString('hex')); // console.log(cipher.read().toString('hex'));
}); // });
//
let output = ''; //
// this.cipheredText = someText;
this.cipheredText = someText; // // outputs encrypted hex
// outputs encrypted hex // console.log(this.cipheredText);
console.log(this.cipheredText);
} }
decrypt(sometext) { decrypt(sometext) {
const decipher = crypto.createDecipheriv(this.algorithm, this.key, this.initial_vector); // const decipher = Crypto.createDecipheriv(this.algorithm, this.key, this.initial_vector);
//
decipher.on('readable', () => { // decipher.on('readable', () => {
this.otherCipheredText = decipher.read().toString('utf8'); // this.otherCipheredText = decipher.read().toString('utf8');
//
console.log('otherCipheredText decrypt', this.otherCipheredText); // console.log('otherCipheredText decrypt', this.otherCipheredText);
}); // });
//
decipher.write(sometext, 'hex'); // decipher.write(sometext, 'hex');
decipher.end(); // decipher.end();
} }
convertTextToInt(someText) { convertTextToInt(someText) {