node啟動js-3DES-ECB加密,python-3DES-ECB加密
阿新 • • 發佈:2020-07-01
一.node啟動js-3DES-ECB加密
var arguments = process.argv.splice(2); // console.log('所傳遞的引數是:', arguments); var password = arguments[0]; //加密的password var t= arguments[1]; //加密的txt var forge = require('node-forge'); // var fs = require('fs'); 寫檔案 // console.log(t); var n = forge.cipher.createCipher("3DES-ECB",password ); n.start(); n.update(forge.util.createBuffer(forge.util.encodeUtf8(t))); n.finish(); var data = forge.util.encode64(n.output.getBytes()).toString(); console.log(data); // fs.writeFile(name, data, function (error) {});
二.python-3DES-ECB加密
from Crypto.Cipher import DES3 import base64 import json BS = DES3.block_size def pad(s): return s + (BS - len(s) % BS) * chr(BS - len(s) % BS) def unpad(s): return s[0:-ord(s[-1])] class prpcrypt(): def __init__(self, key): self.key = key self.mode = DES3.MODE_ECB def encrypt(self, text): text = pad(text) cryptor = DES3.new(self.key, self.mode) x = len(text) % 8 if x != 0: text = text + '\0' * (8 - x) text=text.encode("utf-8") self.ciphertext = cryptor.encrypt(text) return base64.standard_b64encode(self.ciphertext).decode("utf-8") def decrypt(self, text): cryptor = DES3.new(self.key, self.mode) de_text = base64.standard_b64decode(text) plain_text = cryptor.decrypt(de_text) st = str(plain_text.decode("utf-8")).rstrip('\0') out = unpad(st) return out code = json.dumps(text) //加密的內容 key = 'Q5yuGAZ2hHg1jhuRWjhc39oM' //鹽 print(prpcrypt(key).encrypt(code))