MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

सी # मोंगो डीबी में लिखते/पढ़ते समय संपत्ति को एन्क्रिप्ट/डिक्रिप्ट करें

मेरा समाधान:

मॉडल:

public class Patient
{
    //comes from the client as XXXXXXXXX, RegEx: "([0-9]{9})"
    public EncryptedString SocialSecurityNumber { get; set; }  
}

कस्टम प्रकार:

public class EncryptedString
{
    private readonly string _value;

    public EncryptedString(string value)
    {
        _value = value;
    }

    public static implicit operator string(EncryptedString s)
    {
        return s._value;
    }

    public static implicit operator EncryptedString(string value)
    {
        if (value == null)
            return null;

        return new EncryptedString(value);
    }
}

Serializer(निर्धारक एन्क्रिप्शन का उपयोग करके ):

public interface IEncryptedStringSerializer : IBsonSerializer<EncryptedString> {} 

public class EncryptedStringSerializer : SerializerBase<EncryptedString>, IEncryptedStringSerializer
{
    private readonly IDeterministicEncrypter _encrypter;
    private readonly string _encryptionKey;

    public EncryptedStringSerializer(IConfiguration configuration, IDeterministicEncrypter encrypter)
    {
        _encrypter = encrypter;
        _encryptionKey = configuration.GetSection("MongoDb")["EncryptionKey"];
    }

    public override EncryptedString Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
    {
        var encryptedString = context.Reader.ReadString();
        return _encrypter.DecryptStringWithPassword(encryptedString, _encryptionKey);
    }

    public override void Serialize(BsonSerializationContext context, BsonSerializationArgs args, EncryptedString value)
    {
        var encryptedString = _encrypter.EncryptStringWithPassword(value, _encryptionKey);
        context.Writer.WriteString(encryptedString);
    }
}

धारावाहिक का पंजीकरण:

collection.AddScoped<IEncryptedStringSerializer, EncryptedStringSerializer>();
//then later...
BsonSerializer.RegisterSerializer<EncryptedString>(sp.GetService<IEncryptedStringSerializer>());



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. कुल MongoDB संग्रहण आकार

  2. नेवला फाइंडबायिड () वापसी अशक्त

  3. MongoDB के साथ पुनरावर्ती रूप से वृक्ष संरचना को कैसे क्वेरी करें?

  4. php . में उपयोगकर्ता नाम के लिए mongodb में असंवेदनशील मामला खोजें

  5. ग्रिडएफएस का उपयोग करके संग्रहीत फ़ाइल को कैसे डाउनलोड करें और प्रतिक्रिया/जावास्क्रिप्ट क्लाइंट में ग्राफक्यूएल का उपयोग करके वापस लौटाएं?