将Unity C#标注加密到节点js服务器 - c#

我有一个节点服务器,并统一传递用户名和密码。这是我到目前为止所拥有的。我仍在尝试学习和理解加密,并且类型太多了,我只是感到困惑。下面的代码将成功加密和解密该字符串。此代码是用于此类操作的好代码还是有更好的选择?这实际上使用什么类型的加密?我如何在节点js上解密?任何其他示例,链接或评论将不胜感激。谢谢!

public string encrypt(string toEncrypt) {
    CspParameters cspParams = new CspParameters();

    cspParams.KeyContainerName = "ThisIsAKey";  // This is the key used to encrypt and decrypt can be anything.
    var provider = new RSACryptoServiceProvider(cspParams);

    byte[] tempencryptedBytes = provider.Encrypt(System.Text.Encoding.UTF8.GetBytes(toEncrypt), true);
    string encrypted = Convert.ToBase64String(tempencryptedBytes); // convert to base64string for storage
    Debug.Log("encrypted: " + encrypted);
    // Get the value stored in RegString and decrypt it using the key.
    return encrypted;

}

public string decrypt(string toDecrypt) {
    CspParameters cspParams = new CspParameters();

    cspParams.KeyContainerName = "ThisIsAKey";  // This is the key used to encrypt and decrypt can be anything.
    var provider = new RSACryptoServiceProvider(cspParams);
    string decrypted = System.Text.Encoding.UTF7.GetString(provider.Decrypt(Convert.FromBase64String(toDecrypt), true));
    Debug.Log("decrypted: " + decrypted);
    return decrypted;
}

编辑:我使用的SHA256代码在这里添加。它不会输出正确的字符串值。

    SHA256 sha256 = SHA256Managed.Create();
    byte[] bytes = System.Text.Encoding.UTF8.GetBytes("randy");
    byte[] hash = sha256.ComputeHash(bytes);

    string result = "";
    for (int i = 0; i < hash.Length; i++) {
        result += String.Format("{0:x2}", i);
    }
    Debug.Log("hash: " + result);

    string result2 = Convert.ToBase64String(hash);
    Debug.Log("hash: " + result2);

参考方案

通常,密码不应是可解密的。您应该对密码进行哈希处理(使用类似SHA256的密码),然后将其与Node.js代码中存储的哈希进行比较。切勿以明文或可以转换回原始密码的方式存储或传输密码。

在C#中,哈希看起来像:

string toHash = "PasswordToBehashed";
SHA256 sha = new SHA256();

byte[] tempencryptedBytes = sha.ComputeHash(Encoding.UTF8.GetBytes(toHash));

作为参考,请参见SHA256 class和example using MD5 instead of SHA256。

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

每个文件合并后添加换行 - python

我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…

您如何在列表内部调用一个字符串位置? - python

我一直在做迷宫游戏。我首先决定制作一个迷你教程。游戏开发才刚刚开始,现在我正在尝试使其向上发展。我正在尝试更改PlayerAre变量,但是它不起作用。我试过放在列表内和列表外。maze = ["o","*","*","*","*","*",…

Mongo汇总 - javascript

我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …