Я использую Char[] и преобразовываю его как защищенную строку для шифрования и расшифровки строковых значений.
Ниже приведен фрагмент кода, который я использую для создания ключа шифрования.
char[] keyChars = { '1', '2', '3', '4', '5', '6', '7', '8' }; // This is in key vault now.
var _key = new SecureString();
foreach (var chars in keyChars)
{
_key.AppendChar(chars); // key length is 8
}
Я сохранил этот ключ в хранилище лазурных ключей и извлек его, а вывод возвращается в виде строки. Теперь я хочу преобразовать строковое значение в char[].
Я пытался использовать код, но длина переменной отличается. Из-за этого обычный текст возвращает другое значение при шифровании.
string keyVaultSecret = "'1', '2', '3', '4', '5', '6', '7', '8'"; // length 38
string[] arrayString = new[] { keyVaultSecret };
var charArrayList = arrayString.Select(
str => str.ToCharArray()).ToList(); // charArrayList length is 1 here
Может кто-нибудь помочь, как преобразовать String в Char[] без изменения длины переменной.
arrayString.Split(',').Select( x => x[1] ).ToArray()
Я исправил комментарии для вас - к сожалению, это не сделало вопрос намного лучше, но, по крайней мере, он соответствует поведению кода ... Вы можете отредактировать вопрос больше, чтобы уточнить, почему вы ожидали, что этот код будет давать разные результаты и как вы измерили длину charArrayList
как 38, когда она явно равна 1.
@AlexeiLevenkov, извините, я не объяснил свой вопрос вкратце. В следующий раз я буду внимателен и ясен.
Если я правильно понял вопрос, вы можете попробовать что-то вроде этого:
string keyVaultSecret = "'1', '2', '3', '4', '5', '6', '7', '8'";
var arrayString = keyVaultSecret
.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Select(x => x.Replace('\'', ' '))
.Select(x => x.Trim());
var charArray = string.Join(string.Empty, arrayString).ToCharArray();
Эквивалентом
string
будет: «12345678». ВашkeyVaultSecret
включает в себя все символы для пробелов, одинарных кавычек и запятых.