Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MD5-黑莓在线高分表。如何?_C#_Blackberry_Md5 - Fatal编程技术网

C# MD5-黑莓在线高分表。如何?

C# MD5-黑莓在线高分表。如何?,c#,blackberry,md5,C#,Blackberry,Md5,我有一个统一的游戏,这是在WP商店部署,我正试图做同样的BB。。。然而,在检查了所有我意识到我不能将我的分数发布到我在线主持的DB中之后 我认为这是因为MD5函数,但我不确定BB使用的是哪种API 有人能帮我一点忙吗 这是我使用的MD5函数(用C#编写) 使用UnityEngine; 使用系统集合; 使用系统文本; 使用制度; #如果统一(WP8) 使用System.Security.Cryptography; 使用UnityEngine.Windows; 使用UnityEngine.Windo

我有一个统一的游戏,这是在WP商店部署,我正试图做同样的BB。。。然而,在检查了所有我意识到我不能将我的分数发布到我在线主持的DB中之后


我认为这是因为MD5函数,但我不确定BB使用的是哪种API

有人能帮我一点忙吗

这是我使用的MD5函数(用C#编写)

使用UnityEngine;
使用系统集合;
使用系统文本;
使用制度;
#如果统一(WP8)
使用System.Security.Cryptography;
使用UnityEngine.Windows;
使用UnityEngine.WindowsPhone;
#否则
使用System.Security.Cryptography;
#恩迪夫
公共静态类MD5函数
{
#如果统一(WP8)
静态字符串md5val;
//用于初始化
静态无效开始(){
md5val=Md5Sum(“你好,世界!”);
}
静态void OnGUI()
{
GUILayout.标签(md5val);
}
公共静态字符串Md5Sum(字符串strotencrypt)
{
System.Text.UTF8Encoding ue=新的System.Text.UTF8Encoding();
byte[]bytes=ue.GetBytes(strotencrypt);
byte[]hashBytes=加密计算5hash(字节);
字符串hashString=“”;
for(int i=0;i

谢谢

“我想这是因为MD5功能”——我明白了,你是在用哈希保护你的高分,比如分数和一些共享秘密/数字签名,问题是你的黑莓版本上生成的所有MD5哈希都不符合服务器的期望?这两个分支之间唯一的区别是一个使用MD5CryptoServiceProvider.ComputeHash,另一个使用Unity的Crypto.ComputeMD5Hash?你确定它们是兼容的实现吗?我知道,Crypto.ComputeMD5Hash确实适用于Windows Phone,另一个适用于“独立网络播放器”(可能还有Android,我没有检查过),但我不知道哪一个功能适合与Blackberry兼容。
using UnityEngine;
using System.Collections;
using System.Text;
using System;
#if UNITY_WP8
using System.Security.Cryptography;
using UnityEngine.Windows;
using UnityEngine.WindowsPhone;
#else
using System.Security.Cryptography;
#endif

public static class Md5Functions
{

#if UNITY_WP8

    static string md5val;

    // Use this for initialization
    static void Start () {
        md5val = Md5Sum("Hello World!");
    }

    static void OnGUI()
    {
        GUILayout.Label(md5val);
    }

    public static string Md5Sum(string strToEncrypt)
    {
        System.Text.UTF8Encoding ue = new System.Text.UTF8Encoding();
        byte[] bytes = ue.GetBytes(strToEncrypt);

        byte[] hashBytes = Crypto.ComputeMD5Hash(bytes);
        string hashString = "";

        for (int i = 0; i < hashBytes.Length; i++)
        {
            hashString += System.Convert.ToString(hashBytes[i], 16).PadLeft(2, '0');
        }

        return hashString.PadLeft(32, '0');
    }
#else
    public static string Md5Sum(string strToEncrypt)
    {
        System.Text.UTF8Encoding ue = new System.Text.UTF8Encoding();
        byte[] bytes = ue.GetBytes(strToEncrypt);

        // encrypt bytes
        System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
        byte[] hashBytes = md5.ComputeHash(bytes);

        // Convert the encrypted bytes back to a string (base 16)
        string hashString = "";

        for (int i = 0; i < hashBytes.Length; i++)
        {
            hashString += System.Convert.ToString(hashBytes[i], 16).PadLeft(2, '0');
        }

        return hashString.PadLeft(32, '0');
    }
#endif
}