У меня есть этот код WinRT:
public static string Encrypt(string Login)
{
var input = CryptographicBuffer.ConvertStringToBinary(Login, BinaryStringEncoding.Utf8);
var BinKey = CryptographicBuffer.ConvertStringToBinary(Key, BinaryStringEncoding.Utf8);
var BinIV = CryptographicBuffer.ConvertStringToBinary(IV, BinaryStringEncoding.Utf8);
var Encryptor = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesCbcPkcs7);
var SymmKey = Encryptor.CreateSymmetricKey(BinKey);
var encrypted = CryptographicEngine.Encrypt(SymmKey, input, BinIV);
return CryptographicBuffer.EncodeToBase64String(encrypted);
}
public static string Decrypt(string LoginToDecode)
{
var input = CryptographicBuffer.DecodeFromBase64String(LoginToDecode);
var BinKey = CryptographicBuffer.ConvertStringToBinary(Key, BinaryStringEncoding.Utf8);
var BinIV = CryptographicBuffer.ConvertStringToBinary(IV, BinaryStringEncoding.Utf8);
var Decryptor = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesCbcPkcs7);
var SymmKey = Decryptor.CreateSymmetricKey(BinKey);
var Decrypted = CryptographicEngine.Decrypt(SymmKey, input, BinIV);
return CryptographicBuffer.ConvertBinaryToString(BinaryStringEncoding.Utf8, Decrypted);
}
и мне нужно это в PHP. Я пытаюсь сделать это в этом коде, но это не то же самое:
function decryptRJ256($key,$iv,$string_to_decrypt){
$string_to_decrypt = base64_decode($string_to_decrypt);
$rtn = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $string_to_decrypt, MCRYPT_MODE_CBC, $iv);
$rtn = rtrim($rtn, "\0\4");
return($rtn);}
функция encryptRJ256 ($ key, $ iv, $ string_to_encrypt) {
$ rtn = mcrypt_encrypt (MCRYPT_RIJNDAEL_128, $ key, $ string_to_encrypt, MCRYPT_MODE_CBC, $ iv);
$ rtn = base64_encode ($ rtn);
возврата ($ RTN);}
Например, для этого ввода в C #:
У меня есть «eSy8m8ygN7rtC80DMdGOUQ ==».
Мне нужно это в PHP.
Задача ещё не решена.
Других решений пока нет …