Это может быть достигнуто следующим образом:
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
Объяснение
TripleDes ?
You can use the System.Security.Cryptography.TripleDESCryptoServiceProvider
Small amount of code to encrypy/decrypt... does exactly what it says on the tin :)
TripleDES is a very good option, but you can also consider AesCryptoServiceProvider (AES), which is a modern symmetric cipher.
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
.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
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.
На данный момент DES в значительной степени устарел. Вот Википедия . Если вы часто меняете ключ, этого может быть достаточно, но если вы какое-то время полагаетесь на ключ, AES кажется лучшим выбором.
Конечно, вопрос в том, какой уровень защиты вам нужен. Но AES тоже встроен прямо там.
Я использовал AES для небольших строк, и он отлично работает.
Что я читал о TripleDES, так это то, что, поскольку DES легко взломать, TripleDES по-прежнему несущественен.