【发布时间】:2016-01-10 21:15:37
【问题描述】:
我有以下关于解密字符串的信息。它用于线路 API。 https://developers.line.me/in_app_web/api-reference#get_token
加密的字符串将使用 Channel Secret 作为对称密钥进行解码。使用的算法是AES,块大小是128位,加密模式是ECB,填充是PKCS#5。 Channel Secret 字符串将被解释为十六进制字节字符串并用作对称密钥。加密后的字符串遵循Base64编码,解码后恢复。
它还提供了 java、ruby 和 php 的示例。我正在尝试在 node.js 上实现这一点,但我对所有术语以及如何在 node.js 上实现这一点感到完全困惑。
Ruby 实现
source = ... # encrypted string
cipher = OpenSSL::Cipher::Cipher.new('AES-128-ECB')
cipher.decrypt
cipher.key = ['YOUR_CHANNEL_SECRET'].pack('H*')
decoded = Base64.decode64(source)
decrypted = cipher.update(decoded) + cipher.final
php实现
$source = ...; // encrypted string
$secretKey = pack('H*', "YOUR_CHANNEL_SECRET");
$decoded = base64_decode($source);
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $secretKey, $decoded, MCRYPT_MODE_ECB);
所以这里我们有源和 YOUR_CHANNEL_SECRET 可用。有关如何在 node.js 上实现此功能的任何帮助都会有所帮助。
谢谢
【问题讨论】:
-
我猜这个问题是关于加密的。本题用于解密。
标签: javascript node.js encryption line-api