Как переписать метод с C# на PHP

375
27 мая 2017, 15:05

Есть метод на C#

class Program
{
    static void Main(string[] args)
    { 
        string methodHash = "7c4d1f87d6a743b9ac20755578cc7596";
        string publicKey = "<RSAKeyValue><Modulus>nGJJFh2iWU+WgJYfdZDeuunpqyKlbsuplMOfTG8iVE2HmrCcAwhLwIk3T/IVYl4pYEXqIwern2E2GJ+GbvuKgMsyuOY8Wh4EDCjBF/8ZNu4TFDyqRrAkpunYHTqsP5YHVfd3JL/x1kq2hOWiR3nnLwQoyYcfjt6OrmYHe9b2btM=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
        Encryptor encryptor = new Encryptor();
        string token = encryptor.EncryptRSA(methodHash, publicKey);
    }
}
public class Encryptor
{
    private static UnicodeEncoding _encoder = new UnicodeEncoding();
    public string EncryptRSA(string data, string publicKey)
    {
        try
        {
            var rsa = new RSACryptoServiceProvider();
            rsa.FromXmlString(publicKey);
            var dataToEncrypt = _encoder.GetBytes(data);
            var encryptedByteArray = rsa.Encrypt(dataToEncrypt, false).ToArray();
            var length = encryptedByteArray.Count();
            var item = 0;
            var sb = new StringBuilder();
            foreach (var x in encryptedByteArray){
            item++;
            sb.Append(x);
            if (item < length)
            sb.Append(",");}
            return sb.ToString();
        } catch (Exception ex) { throw new RSAException(); }
    }
    class RSAException : Exception{ public RSAException() : base("RSA Encryption Error") { }}
}

То что должно выйти в итоге:

62,148,123,57,253,121,179,128,57,127,141,233,33,209,109,46,5,106,130,37,107,201,26,50,101,162,24,168,43,212,205,165,203,85,207,163,193,144,136,155,234,223,242,232,46,66,16,110,223,84,71,97,113,109,34,146,138,30,173,84,183,48,31,78,228,2,239,246,196,223,43,62,225,93,116,79,247,120,164,172,235,153,15,140,147,86,238,141,85,194,212,109,152,95,108,173,216,108,55,44,133,225,254,100,245,250,6,68,70,205,157,146,209,181,137,234,112,160,129,100,25,202,200,131,249,62,226,142

Мой метод, который не верно генерирует ключ, где и что я сделал не так?

include('RSA_XML.php');
$method = "tools/subscribe";
$hash_string = "123456789".$method;
$methodHash = md5($hash_string);
$rsa = new Crypt_RSA_XML();
$rsa->loadKeyfromXML($key_arr->PublicKey);
$encrypted = $rsa->encrypt($methodHash);
$bytearr = unpack('C*', $encrypted);
$key = implode(',',$bytearr);
READ ALSO
Как добавить кнопку рядом с кнопкой пуск?

Как добавить кнопку рядом с кнопкой пуск?

Как добавить кнопку рядом с кнопкой пуск?

294
Как перевести Json формат в &ldquo;понятный&rdquo; текст?

Как перевести Json формат в “понятный” текст?

Я знакомлюсь с VK API, и воспользовался WebClient'ом для выполнения Get запросаВсё проходит гладко, но текст как и нужно, отображается на textbox'е в формате...

305
С помощью каких средств можно получить статистику о времени выполнения каждого метода?

С помощью каких средств можно получить статистику о времени выполнения каждого метода?

Допустим, есть программа и мне нужно в конце ее работы получить некоторую статистику

239
Заполнить DataGrid через Binding

Заполнить DataGrid через Binding

Недавно начал изучать wpf поэтому могу задавать достаточно глупые вопросыИтак есть DataGrid

247