nodejs用des3解密

const crypto = require('crypto');

// 密钥(必须是24字节)
//const key = Buffer.from('SlUBp1MsgAaBIq8odyH22Nv9', 'hex');


// const key = 'SlUBp1MsgAaBIq8odyH22Nv9'
// // 初始化向量(IV,必须是8字节)
// //const iv = Buffer.alloc(8, 0);
// const iv = null;
// 明文
// const plaintext = 'This is a secret message';
//
// // 创建加密器
// const cipher = crypto.createCipheriv('des-ede3-cbc', key, iv);
//
// // 加密
// let encrypted = cipher.update(plaintext, 'utf8', 'hex');
// encrypted += cipher.final('hex');

//console.log('Encrypted:', encrypted);
function stringToUint8Array(str, length = 24) {
  // 确保字符串长度不超过24个字节
  if (Buffer.byteLength(str, 'utf8') > length) {
    throw new Error('String is too long to be encoded into ' + length + ' bytes');
  }

  // 使用Buffer来编码字符串,然后转换为Uint8Array
  const buffer = Buffer.from(str, 'utf8');
  const uint8Array = new Uint8Array(length);

  // 将字符串编码后的字节复制到Uint8Array中
  buffer.copy(uint8Array);

  // 如果字符串长度小于24,则填充剩余的字节为0
  // if (buffer.length < length) {
  //   uint8Array.fill(0, buffer.length);
  // }

  return uint8Array;
}

// const str = 'Hello, world!'; // 示例字符串
// const uint8Array = stringToUint8Array(str);
// console.log(uint8Array);

var key = 'SlUBp1MsgAaBIq8odyH22Nv9'
const key_u8 = stringToUint8Array(key);
console.log(key_u8);

// var iv = 0
// const number = 0; // 要转换的数字
const iv_u8 = new Uint8Array(); // 创建一个长度为1的Uint8Array

console.log(iv_u8); // 输出: Uint8Array(1) [0]

var encrypted = "0c5edabb312300ff72d7392b408bcc723747b57c16bce0bb10a1649deaca3b16fce32279eb9355fce5ad4a21834738182ad1f9ed10b21aa0238eaf9d1b6cb889e63a92d7ef000c43f7bbf418ebea56c54edcfa5724ceac18e50613be5522eb1d7e3f6911b29adbbe010c14e3412c4282cc1168166cd44e0877a566c01a267fbfa03b48bd9a63b9aea29ce88d7fcf10d7103215cc2f1a0ff549c2889d592cec2f3c348ca7822b5573c0bf5633ccb8a5762f8cf52e9557e9fb5acb6ee979054b2084df6a9f167d36febd9818ebb12b0a6657cb9beadd0c5443fa3f43d2877c411ac4ef59d048db4b8d4d3e80ba56ba817b8cab6b440ec42bc4b55b18c28bd375fd7f311f7438d804e529a6f77dbcd410fe2dd0a9e674b16ea7f2ca8dc4fe873c454c28d6fb20246c30c7032b8da0f24fce43295f78464ea103bafa3c69ef4726cedf328d0e82bd6c579845e2c7ca65317cb78bfdc524643f14ecebfa79211fc4454a8ee2e00f0af80b8a464d344b5e25ab0f7a2ee6c50ad7dd6ba07573f3d1fb60f994d46f11c83ea39e68f098d890d5c9d90173806e664cca040d5ea70eba0ea5ff8ee801cb9d28815d2dd5edfd24c16a32632780877d91a8a66f5e7b08a599140571c53bb6a53ce3261986a9202d45a9a0f5e0fcd6bf827c96034d456bd032354b17bcab2cd09cac6e4a4eed68813fff9c3498c3fc8094aeb2dd45a9b7f0e550704c68e4fdabafd7dcb119a33b1c376d934f3cd9ce6c67704d85f2b74f9e518479ef16324344a0afac6278c7f312d653e6a8a8ded2ef6ff7006996cae27706eedcb119a33b1c376d934f3cd9ce6c67704d85f2b74f9e518434c1c634d2802a1f9f4730a5ce020f8d17edf497e5d2c702e8d338b2cf840dfb20296ed362be4b4bd29b54eedb4b0af1f2f7b8d6a306c083d222ea28837b9e700894488f9eb6d174c98101a31b2087749b6ff977a3cfc3cb653566f77e4574ef098d4b19107288980894488f9eb6d17455fa84a5f98464753c348ca7822b5573c0719be5bf10b258dabb94a7571210839bcb3d62f22dc66b871358b92c32face10a1649deaca3b169c1834906ba8cb22feb8edd472e71184034c03d1b82d25fbdd7d4601a7d68b10971d58fa650c4f1666c10f34d5b769f30767fb92527fd6791169961c3503e7cda85b6fbdb5cee1b58382fb96f91b8f96c052649cec298010437a5e9e50032c44509db7d58b655cb2ac3e68a47af1f04daf30379784ace244bead7c34ad4b824c67853083a1538b377e3f6911b29adbbeb3cc9c40e59e3eb7cc1168166cd44e08cb30f6aba2c1f68a92b1824b88ce7d19a7158c1d026d138d67238a7c38efe4252a55917a5a61bc86114e4727aada71dd4c7b94d230269514ddd368a07459e81eba9b46d9167c7e8d839f6ff33fa76de309227d07b074d6b9906c976781c90e8b798c3b0df94a36cce12befaa244fb49fb6b9fc78e4bf7699718d6b88a3e4e7a72609195914b44e171bf7a24f80ef9587ac77fba7e7c0aa707062432d0ba539c30ecabbe036ae32ff19656883c2a2fd7689838bcd1f1824da667f3cac9b7d4ffceff1b85ecf9ada565ac7fb4e502cbe2f2c9ad9e1b4ba4970b5ce60070cd51ba3dad86209205bb4b8c208c62e4d00ba65fe3b261c26fe095e0d1556fcb23d41e7a4bc5c496771884ce89cbad600b79b98d9d5c5f7e83654bae7fd15675f2414e5ed61f6d215a0219c137bbd24adb7a13e5ae009d81f02821b8ce3e9221f86da34a0f5e0fcd6bf827cbbcee66de8cc78ea5fc22f5de6f07aeced61f6d215a0219c137bbd24adb7a13e5ced12238afc47e8ef383f3051ed1df5b5f686528c8247473c348ca7822b557334c1c634d2802a1f9f4730a5ce020f8d58596b7f3dca2d2f1d06c0932334bca0c5fedb9ddb24a73dfad424ddf5b5646edf0ec9880427077317edf497e5d2c702682b7b594995cb048bae31ffd1e81e84fad424ddf5b5646eedeac589a250312dd4bb23feda0be363454e54acd68da37a5c0d95e9c076076221548fcbd8e750783747b57c16bce0bb10a1649deaca3b16a81a8e2f954843e2e5ad4a21834738182ad1f9ed10b21aa095c2f91c8168efbd2f0cbe8986dfcbe8936db43a8d795f6e4edcfa5724ceac18e50613be5522eb1d7e3f6911b29adbbe4e00f8ca6f9d9662cc1168166cd44e0877a566c01a267fbfa03b48bd9a63b9ae8093630bd8ca200eac578dbb9ab0a1f649c2889d592cec2f3c348ca7822b5573c0bf5633ccb8a57630293d5d4a265cb30fde11580bbcfc7284df6a9f167d36febd9818ebb12b0a6657cb9beadd0c54430752019e31f0854b39ccba607f7279cf4d3e80ba56ba817b8cab6b440ec42bc4d56ba8001f9e55464f183cf100cb3c0381bb0f817dee4a91349a874ad27d3e6943295f78464ea103bafa3c69ef4726cedf328d0e82bd6c579845e2c7ca65317cb78bfdc524643f14ecebfa79211fc445fd9dd938277af3acdb0d96279e60e93f198fa6407a0ae4ad38561935ce8937f934965029658789ee654ac7cef7436c608b1de661baf5a4eda696d76184abcfe3f25058367dc23fc4474b92ea277041cf82fc1823015c1093d000ae7b4edbf7ef2609195914b44e171bf7a24f80ef9587ac77fba7e7c0aa70b96e60bc2ca0e7cf8fff421d96f59b81c61cdd5a90bda039da209102ffe59a86d28be4aa7ec069e3d74a566c835ea845109bb0fcd3262bc73939e98a4666c45a6d1a0a8ae379882779ef16324344a0afac6278c7f312d6538a464d344b5e25ab0f7a2ee6c50ad7ddad5c58fb9e75114eded28415925042143dfc8e4fd4fbe6d58896f336cbff001a1ec2b5101908cebcd2b21dab9778294ac7e4352038d30f16948acd0610308973ae3e94e569c5e9982d14b33383ac17dd0540b27f95216774fbb7698f6053ba113c348ca7822b5573ed3c4911cf3f687cd4bb23feda0be3638dc054f34cb0ee49da1dfad7d9768d4076c4cf5b3e4137f8c4da349e05fb2a33d4bb23feda0be3631c353d84c53d3c446296cfecac58c8a1830d89c60fcf66dcd7241a4b6494cbce9d5b14b6bae6cddaad22b933a41c262c4465031d5d556d5ced5582db618e5e05d9982fa2a531a2b600bb95aaff2f93b1e3bb36d0fd9398d774ca5c52c94dc6852c50fc9f919afee9ce8d229fbc07aab172025c7da72c53bb135b82f59d62c9f9f251803791b7a414f89bda148e99ef4bf7f935edb05684b7efdb653bf52fcdceaf3ad737d201fcbb0a039239afe6870728ecac1beb384e0bd83f1b96c68250c7bc7b3f7f026a42921a759594d4d6be51caece3f6eb5710d24e7fa58b4ee4a68ccdedaa739d053ef3b6261597486c2a01c0170e2c90b93c879b961620bc4feb14d7dea6ce49aeb0428d7548d8f6dc9edd9fd0dd61b45a04434171fef21209ee7ebd5d1c85667af62939f48732d213f934da6a87e9a61d7c299774adb915d19f0872025c7da72c53bb9fd0dd61b45a0443f361d3501d49a503"
// 创建解密器
const decipher = crypto.createDecipheriv('des-ede3', key_u8, iv_u8);
decipher.setAutoPadding(true)
// 解密
let decrypted = decipher.update(encrypted, 'hex', 'utf8');
decrypted += decipher.final('utf8');

console.log('Decrypted:', decrypted);
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值