Что лучший способ состоит в том, чтобы зашифровать короткие строки в.NET?

Это может быть достигнуто следующим образом:

useradd master
passwd master
chmod 700 /home/master

useradd -G master user1
passwd user1
usermod -a -G user1 master
chmod 770 /home/user1

useradd -G master user2
passwd user2
usermod -a -G user2 master
chmod 770 /home/user2

Файл vsftpd.conf необходимо настроить следующим образом:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=007
anon_upload_enable=YES
anon_mkdir_write_enable=YES

Объяснение

    [1111 ] userX является членом группы master , поэтому файлами, загруженными пользователем master , может управлять userX .
  • Пользователь master является членом группы userX , поэтому файлы, загруженные userX , могут управляться пользователем master
  • g = разрешение rwx для homedir, поэтому пользователь master имеет доступ ко всем домашним каталогам пользователей.
8
задан 10 May 2009 в 16:39
поделиться

6 ответов

TripleDes ?

You can use the System.Security.Cryptography.TripleDESCryptoServiceProvider

Small amount of code to encrypy/decrypt... does exactly what it says on the tin :)

8
ответ дан 5 December 2019 в 08:00
поделиться

TripleDES is a very good option, but you can also consider AesCryptoServiceProvider (AES), which is a modern symmetric cipher.

6
ответ дан 5 December 2019 в 08:00
поделиться

Here is encrypt & decrypt function with des3 encryption

''' <summary>
''' Encrypts a memory string (i.e. variable).
''' </summary>
''' <param name="data">String to be encrypted.</param>
''' <param name="key">Encryption key.</param>
''' <param name="iv">Encryption initialization vector.</param>
''' <returns>Encrypted string.</returns>
Public Shared Function Encrypt(ByVal data As String, ByVal key As String, ByVal iv As String) As String
    Dim bdata As Byte() = Encoding.ASCII.GetBytes(data)
    Dim bkey As Byte() = HexToBytes(key)
    Dim biv As Byte() = HexToBytes(iv)

    Dim stream As MemoryStream = New MemoryStream
    Dim encStream As CryptoStream = New CryptoStream(stream, des3.CreateEncryptor(bkey, biv), CryptoStreamMode.Write)

    encStream.Write(bdata, 0, bdata.Length)
    encStream.FlushFinalBlock()
    encStream.Close()

    Return BytesToHex(stream.ToArray())
End Function

''' <summary>
''' Decrypts a memory string (i.e. variable).
''' </summary>
''' <param name="data">String to be decrypted.</param>
''' <param name="key">Original encryption key.</param>
''' <param name="iv">Original initialization vector.</param>
''' <returns>Decrypted string.</returns>
Public Shared Function Decrypt(ByVal data As String, ByVal key As String, ByVal iv As String) As String
    Dim bdata As Byte() = HexToBytes(data)
    Dim bkey As Byte() = HexToBytes(key)
    Dim biv As Byte() = HexToBytes(iv)

    Dim stream As MemoryStream = New MemoryStream
    Dim encStream As CryptoStream = New CryptoStream(stream, des3.CreateDecryptor(bkey, biv), CryptoStreamMode.Write)

    encStream.Write(bdata, 0, bdata.Length)
    encStream.FlushFinalBlock()
    encStream.Close()

    Return Encoding.ASCII.GetString(stream.ToArray())
End Function
3
ответ дан 5 December 2019 в 08:00
поделиться

.net security classes:

Hash

* MD5
* MD5Cng
* SHA1
* SHA1Managed
* SHA1Cng
* SHA256
* SHA256Managed
* SHA256Cng
* SHA384
* SHA384Managed
* SHA384Cng
* SHA512
* SHA512Managed
* SHA512Cng

Symmetric Encryption: Uses the same key for encryption and decryption.

* DES
* DESCryptoServiceProvider
* TripleDES
* TripleDESCryptoServiceProvider
* Aes
* AesCryptoServiceProvider
* AesManaged
* RC2
* RC2CryptoServiceProvider
* Rijandel
* RijandelManaged

Asymmetric Encryption: Uses different keys for encryption and decryption.

* DSA
* DSACryptoServiceProvider
* ECDsa
* ECDsaCng
* ECDiffieHellman
* ECDiffieHellmanCng
* RSA
* RSACryptoServideProvider
3
ответ дан 5 December 2019 в 08:00
поделиться

You could just use RSA encryption, since these are short strings, which will make key exchange simpler.

How much you can encrypt with RSA is based on the key length.

I am a fan of the rsa library from bouncy castle.

1
ответ дан 5 December 2019 в 08:00
поделиться

На данный момент DES в значительной степени устарел. Вот Википедия . Если вы часто меняете ключ, этого может быть достаточно, но если вы какое-то время полагаетесь на ключ, AES кажется лучшим выбором.

Конечно, вопрос в том, какой уровень защиты вам нужен. Но AES тоже встроен прямо там.

Я использовал AES для небольших строк, и он отлично работает.

Что я читал о TripleDES, так это то, что, поскольку DES легко взломать, TripleDES по-прежнему несущественен.

0
ответ дан 5 December 2019 в 08:00
поделиться