2
私のノードJSコードに何が問題なのかよくわかりません。ノードJSからの出力には、iOS Swiftの出力よりもいくつかの文字が欠けています。iOS SwiftとNode JS Cryptoの異なる出力
マイノードJSコード:
var crypto = require('crypto');
var CRYPTO_ALGORITHM = "aes-256-ctr";
var CRYPTO_PASSWORD = "3zTvzr3p67VC61jmV54rIYu1545x4TlY";
var CRYPTO_IV = "";
var string_data = "OLIVER MARTINEZ OLIVER";
var cipher = crypto.createCipheriv(CRYPTO_ALGORITHM, CRYPTO_PASSWORD, CRYPTO_IV);
var encrypted = cipher.update(string_data, "utf8", "hex");
encrypted += cipher.final("hex"); // to hex
console.log("encrypted final: " + encrypted);
// --------------------------------------------------------------- //
var encrypted_string = encrypted;
var decipher = crypto.createDecipheriv(CRYPTO_ALGORITHM, CRYPTO_PASSWORD, CRYPTO_IV);
var decrypted = decipher.update(encrypted_string, "hex", "utf8");
decrypted += decipher.final("utf8"); // to utf8
console.log("decrypted final: " + decrypted);
ノード出力:3df3cfd9adef86489fd27629d75f3fcbb744e5bae846
私のiOSのスウィフトコード:
let CRYPTO_IV = "";
let CRYPTO_PASSWORD = "3zTvzr3p67VC61jmV54rIYu1545x4TlY";
let data = "OLIVER MARTINEZ OLIVER";
let encrypted = try! data.encrypt(AES(key: CRYPTO_PASSWORD, iv: CRYPTO_IV, blockMode: .CTR)).toHexString();
print("encrypted: \(encrypted)");
IOS SWIFT OUTPUT:3df3cfd9adef86489fd27629d75f3fcbb744e5bae846bde7df9e98571ba27f01
あなたが見ることができるように。出力は非常に似ています。 NodeJS出力にはいくつかの文字が欠けています。
による 'の公共初期化子の不足のために(' NoPaddingは() '** **は現在' CryptoSwift'モジュールの外部呼び出すことはできませんのでご注意くださいNoPadding')。 私は[プルリクエスト](https://github.com/krzyzanowskim/CryptoSwift/pull/254)を開きました。これは 'develop'ブランチにマージされ、近い将来にリリースされる予定です(うまくいけば)。 –
ありがとうございましたArtjom .. NoPadidng()を使用するとエラーが発生しました。私だけでなく、すぐに解決されることを嬉しく思っています。ありがとうございました。本当に役に立つ – nemoryoliver