Внутри текущего репозитория, где я работаю, я делаю эту работу: |
git remote add morgoao git@github.com:RecoX/cvs2gitao.git
git fetch morgoao
git rebase -X theirs morgoao/master
Просто отметьте, что в rebase theirs
противоположно тому, что вы думаете, это текущая ветвь, в которой вы шагаете момент.
И это работает как шарм:)
Для получения дополнительной информации я написал учебник: https://medium.com/@requitolucas/importar-repositorio-cvs-a-git-sourceforge -a-GitHub-де-Manera-Facil-20c63344bfa5
Нет никаких, сохраняют поддержку в SecureString, она предназначается как механизм для защиты управляемой строки в оперативной памяти и только используется для взаимодействия через интерфейс с неуправляемыми API. Если пароль был сохранен в Системе. Строковый экземпляр, безопасность произошла бы менее из-за природы Системы. Строка. Существование сборки "мусора" и интернирования сохранило бы пароль в памяти дольше, чем необходимый. Также из-за изобилия больших средств отладки для.NET, было бы значительно легче получить доступ к строке посредством отражения или другого API.NET даже без более длительного времени жизни.
Если Вы собираетесь сохранить пароль на диске, Ваша безопасность довольно далеко поставлена под угрозу. Если у кого-то есть физический доступ к машине, или удаленный доступ уровня администратора, то лучшее можно сделать, делают это более трудным, но никогда не невозможным. Используйте шифрование API, сохраните его в безопасном месте, настройте права доступа.
Все, что в стороне, Merus, я предложил бы Вас, пытается улучшить полную систему, потому что для примера использования как Вы описываете (предположение, что я понимаю это), Вы были бы лучше обслужены для хранения хеша, чем фактического пароля.
Если Вы будете означать сохранять зашифрованные байты SecureString затем, то это не будет работать - ключ для SecureString связывается с пользователем и процессом. Читайте в тех байтах в другом процессе или для другого пользователя, и нет никакого способа дешифровать строку.
Это победило бы точку SecureString, который, как гарантируют, будет находиться в памяти. Таким образом, при сохранении его в файл Вы могли бы также сохранить его как нормальную строку, так как это больше не "безопасно".
Вы могли бы хотеть посмотреть на сравнение хэша пароля.
Вам сделали бы соль имени пользователя и вероятно некоторой другой константы, сопровождаемой строкой. Затем Вы передали бы это алгоритму хеширования, как SHA1*.
Например,
using System.Security.Cryptography;
public byte[] GetPasswordHash(string username, string password, string salt)
{
// get salted byte[] buffer, containing username, password and some (constant) salt
byte[] buffer;
using (MemoryStream stream = new MemoryStream())
using (StreamWriter writer = new StreamWriter(stream))
{
writer.Write(salt);
writer.Write(username);
writer.Write(password);
writer.Flush();
buffer = stream.ToArray();
}
// create a hash
SHA1 sha1 = SHA1.Create();
return sha1.ComputeHash(buffer);
}
Затем Вы сравнили бы результат для GetPasswordHash(username, expectedPassword, salt)
кому: GetPasswordHash(username, givenPassword, salt)
.
При реализации собственного списка пользователей с именами пользователей и паролями Вы могли бы рассмотреть только сохранение хеша (GetPasswordHash(username, givenPassword, salt)
) и выдерживая сравнение с сохраненным хешем.
Вы могли бы хотеть смотреть на класс IsolatedStorageFileStream. Это указывает способы записать и хранить данные файла, к которым может получить доступ только Ваш блок.
Я не думаю, что можно использовать SecureString на нем все же.
SecureString не является сериализуемым, таким образом, Вы не можете только сохранить его с некоторыми поставленными сериализаторами (двоичный файл, XML, и т.д.)
Вы также не можете только получить доступ, например, свойство "Password" от объекта securestring, поскольку нет такой вещи. необходимо использовать Маршалинг и определенную инфраструктуру, чтобы сделать это. если Вы хотите сохранить удостоверения пользователя где-нибудь, я предлагаю шифровать их самостоятельно, поскольку это упрощает более позднюю разработку. после оценки подхода SecureString мы решили реализовать что-то нами, но это просто мои 2 цента.