我正在使用C#。我希望能够从用户获取文本,然后将其验证为仅包含整数。如果我选择将字符串转换为int/long,则会丢失前导零。我想保持领先的零。我的计划是将此用户输入文本保留为字符串。将字符串(仅限数字)加密为另一个字符串(仅限数字)
我想加密这个字符串(只有数字),所以结果密文也是一串数字。有没有简单的方法在C#中做到这一点?这甚至有可能吗?有没有其他的选择?如果可能,我可以举例吗?
示例输入: “0”
实施例输出(后加密): “0129021398013”
一些要求:
字符串的长度可以从12至19而变化(此长度可能 在未来发生变化)。我想要对称加密。我们可以通过使用单个密钥和XOR函数来简化 加密(现在为 ...我想改进它)。我更担心 格式保存和如何做到这一点。数字
字符串指的0,1,2,3,4,5,6,7,8,9,或 那些连接在一起的任何组合的字符串。
这个问题是指保留格式的加密。 http://en.wikipedia.org/wiki/Format-preserving_encryption
对于那些有兴趣,我目前做如下(我没有这台机器上的代码......我把它更高版本):
- 接收用户输入字符串输入。
- 将INPUT转换为ulong(UInput)。
- 使用简单加密创建密码ulong - > cipherU =(UInput + 1)^ SECRET_KEY
- 将cipherU存储在数据库中。
问题是我失去了第1步和第2步之间的前导零。我不想失去这些前导零(例如“00123”在开头有两个零,因为“345123”没有) 。我认为使用只有数字的字符串是保持前导零的最佳方式。
唉唉,不断下降选票,但在评论部分没有问题或建议。对你好。 –
@HenkHolterman你是什么意思分隔符? “integerS”是一个类还是仅包含整数的字符串?字符串长度可以从12-19变化(这个长度可能在将来会改变)。我想要对称加密。我们可以通过使用单个键和异或函数来保持简单的加密(现在...我想改进它)。我更担心格式保存以及如何做到这一点。 –
有没有简单的方法在C#中做到这一点? [是]是否有可能做到这一点?[是]是否有其他选择? [是] –