兼容Java的js加密解密代码。
const NodeRSA = hitchhiker.require('node-rsa');
const CryptoJS = hitchhiker.require("crypto-js");
// md5加密
function md5(param){
return CryptoJS.MD5(param).toString();
}
// DES加密
function encrptByDES(src,key){
var keyHex = CryptoJS.enc.Utf8.parse(key);
return CryptoJS.DES.encrypt(src,keyHex,{
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}).toString();
}
// DES解密
function decrptByDES(src,key){
var keyHex = CryptoJS.enc.Utf8.parse(key);
return CryptoJS.DES.decrypt(src.replace(/[\r\n]/g,""),keyHex,{
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}).toString(CryptoJS.enc.Utf8);
}
/**
* RSA私钥加密
*/
function encryptByRSAForPrivateKey(json, privateKey) {
try {
// privateKey = parsePrivateKey(privateKey);
var key = new NodeRSA(privateKey, "pkcs8");
key.setOptions({
"environment ": 'node'
});
key.setOptions({
"encryptionScheme": 'pkcs1'
});
return key.encryptPrivate(json, "base64", "utf8");
} catch (e) {
console.error(e.toString());
}
}
/**
* RSA私钥解密
*/
function decryptByRSAForPrivateKey(json, privateKey) {
try {
// privateKey = parsePrivateKey(privateKey);
var key = new NodeRSA(privateKey, "pkcs8");
key.setOptions({
"environment ": 'node'
});
key.setOptions({
"encryptionScheme": 'pkcs1'
});
return key.decrypt(json, "utf8");
} catch (e) {
console.error(e.toString());
}
}
/**
* RSA公钥加密
*/
function encryptByRSAForPublicKey(json, publicKey) {
try {
var key = new NodeRSA(publicKey, "public");
key.setOptions({
"environment ": 'node'
});
key.setOptions({
"encryptionScheme": 'pkcs1'
});
return key.encrypt(json, "base64", "utf8");
} catch (e) {
console.error(e.toString());
}
}
/**
* RSA公钥解密
*/
function decryptByRSAForPublicKey(json, publicKey) {
try {
var key = new NodeRSA(publicKey, "public");
key.setOptions({
"environment ": 'node'
});
key.setOptions({
"encryptionScheme": 'pkcs1'
});
return key.decryptPublic(json, "utf8");
} catch (e) {
console.error(e.toString());
}
}
/**
* RSA私钥签名
*/
function signByRSAForPrivateKey(json, privateKey) {
try {
// privateKey = parsePrivateKey(privateKey);
var key = new NodeRSA(privateKey, "pkcs8");
key.setOptions({
"environment ": 'node'
});
key.setOptions({
"signingScheme": 'sha1'
});
return key.sign(json, "base64", "utf8");
} catch (e) {
console.error(e.toString());
}
}
/**
* RSA公钥验签
*/
function checkSignByRSAForPublicKey(json, sign, publicKey) {
try {
// privateKey = parsePrivateKey(privateKey);
var key = new NodeRSA(publicKey, "public");
key.setOptions({
"environment ": 'node'
});
key.setOptions({
"signingScheme": 'sha1'
});
return key.verify(json, sign, "utf8", "base64");
} catch (e) {
console.error(e.toString());
}
}