السلام عليكم ورحمة الله وبركاته
لدي دالة تشفير وفك تشفير فيجوال بيسك دوت نت هل تحويلها الى c sharp كفيل بعملها في xamarin؟
واذا احببت وضع الدالة في كلاس في هذه اللغة فكيف؟
اقصد ماذا اختار من Add new item
التالي ملف الكلاس كله
لدي دالة تشفير وفك تشفير فيجوال بيسك دوت نت هل تحويلها الى c sharp كفيل بعملها في xamarin؟
واذا احببت وضع الدالة في كلاس في هذه اللغة فكيف؟
اقصد ماذا اختار من Add new item
PHP كود :
public string Encrypt(string text, string key)
{
try
{
TripleDESCryptoServiceProvider crp = new TripleDESCryptoServiceProvider();
UnicodeEncoding uEncode = new UnicodeEncoding();
byte[] bytPlainText = uEncode.GetBytes(text);
MemoryStream stmCipherText = new MemoryStream();
byte[] slt = {
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12
};
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(key, slt);
byte[] bytDerivedKey = pdb.GetBytes(24);
crp.Key = bytDerivedKey;
crp.IV = pdb.GetBytes(8);
CryptoStream csEncrypted = new CryptoStream(stmCipherText, crp.CreateEncryptor(), CryptoStreamMode.Write);
csEncrypted.Write(bytPlainText, 0, bytPlainText.Length);
csEncrypted.FlushFinalBlock();
return Convert.ToBase64String(stmCipherText.ToArray());
}
catch (Exception ex)
{
throw;
}
}
public string Decrypt(string text, string key)
{
TripleDESCryptoServiceProvider crp = default(TripleDESCryptoServiceProvider);
try
{
crp = new TripleDESCryptoServiceProvider();
UnicodeEncoding uEncode = new UnicodeEncoding();
byte[] bytCipherText = Convert.FromBase64String(text);
MemoryStream stmPlainText = new MemoryStream();
MemoryStream stmCipherText = new MemoryStream(bytCipherText);
byte[] slt = {
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12
};
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(key, slt);
byte[] bytDerivedKey = pdb.GetBytes(24);
crp.Key = bytDerivedKey;
crp.IV = pdb.GetBytes(8);
CryptoStream csDecrypted = new CryptoStream(stmCipherText, crp.CreateDecryptor(), CryptoStreamMode.Read);
StreamWriter sw = new StreamWriter(stmPlainText);
StreamReader sr = new StreamReader(csDecrypted);
sw.Write(sr.ReadToEnd);
sw.Flush();
csDecrypted.Clear();
crp.Clear();
return uEncode.GetString(stmPlainText.ToArray());
}
catch (Exception ex)
{
throw;
}
}
لقد حولت الدالتين وجربتها بسي شارب(ليس xamarin) نجح التشفير وحدث اخطاء في الفك.
إقتباس :Severity Code Description Project File Line Suppression State
Error CS1503 Argument 1: cannot convert from 'method group' to 'char' Encrypt_test C:\Users\xxx\Desktop\Encrypt_test\txt_encrypt.cs 91 Active
التالي ملف الكلاس كله
PHP كود :
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace Encrypt_test
{
class txt_encrypt
{
//****
public string Encrypt(string text, string key)
{
try
{
TripleDESCryptoServiceProvider crp = new TripleDESCryptoServiceProvider();
UnicodeEncoding uEncode = new UnicodeEncoding();
byte[] bytPlainText = uEncode.GetBytes(text);
MemoryStream stmCipherText = new MemoryStream();
byte[] slt = {
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12
};
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(key, slt);
byte[] bytDerivedKey = pdb.GetBytes(24);
crp.Key = bytDerivedKey;
crp.IV = pdb.GetBytes(8);
CryptoStream csEncrypted = new CryptoStream(stmCipherText, crp.CreateEncryptor(), CryptoStreamMode.Write);
csEncrypted.Write(bytPlainText, 0, bytPlainText.Length);
csEncrypted.FlushFinalBlock();
return Convert.ToBase64String(stmCipherText.ToArray());
}
catch (Exception ex)
{
throw;
}
}
public string Decrypt(string text, string key)
{
TripleDESCryptoServiceProvider crp = default(TripleDESCryptoServiceProvider);
try
{
crp = new TripleDESCryptoServiceProvider();
UnicodeEncoding uEncode = new UnicodeEncoding();
byte[] bytCipherText = Convert.FromBase64String(text);
MemoryStream stmPlainText = new MemoryStream();
MemoryStream stmCipherText = new MemoryStream(bytCipherText);
byte[] slt = {
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12
};
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(key, slt);
byte[] bytDerivedKey = pdb.GetBytes(24);
crp.Key = bytDerivedKey;
crp.IV = pdb.GetBytes(8);
CryptoStream csDecrypted = new CryptoStream(stmCipherText, crp.CreateDecryptor(), CryptoStreamMode.Read);
StreamWriter sw = new StreamWriter(stmPlainText);
StreamReader sr = new StreamReader(csDecrypted);
sw.Write(sr.ReadToEnd);
sw.Flush();
csDecrypted.Clear();
crp.Clear();
return uEncode.GetString(stmPlainText.ToArray());
}
catch (Exception ex)
{
throw;
}
}
//***\\\
}
}