Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.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# 我需要一个算法来创建基于日期和时间量的凭证_C#_Algorithm - Fatal编程技术网

C# 我需要一个算法来创建基于日期和时间量的凭证

C# 我需要一个算法来创建基于日期和时间量的凭证,c#,algorithm,C#,Algorithm,我需要一个算法,创建凭单是基于互联网亭定时器。基本上,凭证应该有允许的加密时间。我想在开始时用十六进制表示时间量,然后在后面加几个随机字符,最后加一个校验和。然而,任何其他想法都是受欢迎的使用c#内置库进行加密。由于您是唯一需要加密/解密的实体,因此可以使用非对称密钥(public/private)模式,在该模式中,您可以将两个密钥都保留为私有密钥,也可以使用对称密钥解决方案。 确保密钥足够大,以便不容易断开(至少256位,最好更多) 您不需要在开始时添加随机字符。您不需要在末尾添加校验和。如果

我需要一个算法,创建凭单是基于互联网亭定时器。基本上,凭证应该有允许的加密时间。我想在开始时用十六进制表示时间量,然后在后面加几个随机字符,最后加一个校验和。然而,任何其他想法都是受欢迎的

使用c#内置库进行加密。由于您是唯一需要加密/解密的实体,因此可以使用非对称密钥(public/private)模式,在该模式中,您可以将两个密钥都保留为私有密钥,也可以使用对称密钥解决方案。 确保密钥足够大,以便不容易断开(至少256位,最好更多)

您不需要在开始时添加随机字符。您不需要在末尾添加校验和。如果内容被篡改(字符意外更改,但无法阻止非常坚决的攻击者),则加密库将无法解密。如果您想额外确保没有篡改,请生成额外的公钥/私钥,并使用它们对加密字符串进行签名

如果您不关心用户是否可以看到您的凭证字符串,您可以将其以纯文本形式显示,然后使用库对其进行签名

因此,您所需要的只是拥有一个可序列化的类,该类包含凭证的所有字段。获取序列化字符串并将其传递给加密/签名例程。当你得到它回来使用相同的例程,以确保字符串是真实的,然后反序列化它,你有你的数据


最重要的是正确使用这些库(按照教程和说明进行操作),并确保钥匙的安全。

您已经尝试过什么?什么不起作用或不符合您的要求?