-2
私はpython/djangoの新機能です。私はAES暗号化を使用したい。 検索後私はこのようなライブラリをいくつか見つけました:https://gist.github.com/jeetsukumaran/1291836 私はIVを持っているので使用できませんでしたが、IVコードはありません。 私はC#でサンプルコードを持っています。いずれか私はこのコードをPythonコードに変換するのに役立ちますか?ここでpython AES Encrypt
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace AESUtility {
public class AES {
string AES_Key = string.Empty;
string AES_IV = string.Empty;
public AES(string AES_Key, string AES_IV) {
this.AES_Key = AES_Key;
this.AES_IV = AES_IV;
}
public bool Encrypt(String Input, out string encryptedString) {
try {
var aes = new RijndaelManaged();
aes.KeySize = 256;
aes.BlockSize = 256;
aes.Padding = PaddingMode.PKCS7;
aes.Key = Convert.FromBase64String(this.AES_Key);
aes.IV = Convert.FromBase64String(this.AES_IV);
var encrypt = aes.CreateEncryptor(aes.Key, aes.IV);
byte[] xBuff = null;
using(var ms = new MemoryStream()) {
using(var cs = new CryptoStream(ms, encrypt, CryptoStreamMode.Write)) {
byte[] xXml = Encoding.UTF8.GetBytes(Input);
cs.Write(xXml, 0, xXml.Length);
}
xBuff = ms.ToArray();
}
encryptedString = Convert.ToBase64String(xBuff);
return true;
} catch (Exception ex) {
encryptedString = string.Empty;
return false;
}
}
public bool Decrypt(String Input, out string decodedString) {
try {
RijndaelManaged aes = new RijndaelManaged();
aes.KeySize = 256;
aes.BlockSize = 256;
aes.Mode = CipherMode.CBC;
aes.Padding = PaddingMode.PKCS7;
aes.Key = Convert.FromBase64String(this.AES_Key);
aes.IV = Convert.FromBase64String(this.AES_IV);
var decrypt = aes.CreateDecryptor();
byte[] xBuff = null;
using(var ms = new MemoryStream()) {
using(var cs = new CryptoStream(ms, decrypt, CryptoStreamMode.Write)) {
byte[] xXml = Convert.FromBase64String(Input);
cs.Write(xXml, 0, xXml.Length);
}
xBuff = ms.ToArray();
}
decodedString = Encoding.UTF8.GetString(xBuff);
return true;
} catch (Exception ex) {
decodedString = string.Empty;
return false;
}
}
}
}
私は、スタックオーバーフローが、コードの書き込みサービスではないため、オフトピックとして、この質問を閉じるために投票しています。コードの変換に問題がある場合は、質問を更新してください。 – Alasdair
このC#コードは、私が欲しいものの単なるサンプルです。私はPythonにそれを秘密にする必要はありません。 –
あなたはhttp://pythonhosted.org/pycrypto/を使うことができます、それは自分自身のIVを設定するためのサポートを持っています。例:http://pythonhosted.org/pycrypto/Crypto.Cipher.AES-module.html – valentin