我需要使用GPG加密JSON数组,当长度超过2083个字符时,我需要拆分需要低于2083个字符的JSON数组。
为了达到这个目的,我将首先对阵列进行加密并检查其长度是否低于2083,如果超过I,我会将阵列拆分为多个阵列然后进行加密。
这样做的更好方法是什么?
例如:
var a = new List<int> { 1,2,3 etc};
当我加密这个数组时,只考虑字符串将是这样的
hQEMA%2Fgo0kYbZeCoAQf8DDemzoWdhq97ULWXvTw4v1fFMq%2F%2BO9z%2FYClDvON
假设上面的字符串超过2083个字符,我会将数组拆分成下面的字符,然后重新加密。
var a = new List<int> { 1,2};
var b = new List<int> { 3, 4};
var c = new List<int> { 5, 6 etc.};
任何想法?
答案 0 :(得分:0)
我会创建一个类似的方法并递归调用它。请注意,该方法也是通用的,因此不会限制为List<int>
,如果您的情况不需要,请删除它。
private const int maxLength = 2083;
public List<string> EncryptList<T>(List<T> list)
{
List<string> encryptedLists = new List<string>();
string encrypted = PerformEncryption();
if (encrypted.Length > maxLength)
{
encryptedLists.AddRange(EncryptList<T>(list.Take(list.Count / 2).ToList()));
encryptedLists.AddRange(EncryptList<T>(list.Skip(list.Count / 2).ToList()));
}
else
{
encryptedLists.Add(encrypted);
}
return encryptedLists;
}
请注意,我还没有测试过此代码,因此if语句中的部分可能无法正常工作。