@Document(collection = "user_data")
public class UserData {
@Id
private String id;
@Field("is_active")
private Boolean isActive;
@Field("organization_id")
private String organizationId;
@Field("system_mode")
private SystemMode systemMode;
@Field("first_name")
private String firstName;
@Field("last_name")
private String lastName;
}
*还有构造函数、getter和setter,但为了简单起见,我省略了它们。
我还有一个匹配的存储库:
@Repository
public interface UsersDataRepository extends MongoRepository<UserData, String> {
}
现在,字段firstName和lastName实际上已经加密,并作为二进制类型存储在数据库中。
Optional<UserData> optionalUserData = usersDataRepository.findById(userId);
我遵循了这一指南,并为我的案例找到了一个有效的解决方案:https://blog.contactsunny.com/tech/encrypting-and-decrypting-data-in-mongoDB-with-a-springboot-project
简而言之,创建一个处理加密和解密字段的组件。创建两个事件侦听器类,它们将侦听mongo、save和get数据库事件。
我的MongoDBAfterLoadEventListener是这样结束的,请注意,它目前只适用于字符串:
public class MongoDBAfterLoadEventListener extends AbstractMongoEventListener<Object> {
@Autowired
private EncryptionUtil encryptionUtil;
@Override
public void onAfterLoad(AfterLoadEvent<Object> event) {
Document eventObject = event.getDocument();
List<String> keysToDecrypt = encryptionUtil.ENCRYPTED_FIELDS_MAP.get(event.getCollectionName());
if (keysToDecrypt == null || keysToDecrypt.isEmpty()) {
return;
}
for (String key : eventObject.keySet()) {
if (keysToDecrypt.contains(key)) {
Binary encrypted = (Binary) eventObject.get(key);
BsonBinary bsonBinary = new BsonBinary(encrypted.getData());
BsonValue decrypted = this.encryptionUtil.decryptText(bsonBinary);
eventObject.put(key, decrypted.asString().getValue());
}
}
super.onAfterLoad(event);
}
}
我想使用chacha20解密和加密字符串 BouncyCastleProvider正在使用chacha20技术。所以我包括了罐子。并尝试了代码,但无法工作。 pbe.java
问题内容: 我被要求 对db中的各个db字段 进行 加密 。 问题是这些字段在读取后需要解密。 我正在使用 Django 和 SQL Server 2005 。 有什么好主意吗? 问题答案: 是的。告诉任何告诉你真实的人。没有道理/没有道理。如果是关于存储的值的,那么企业版2008可以存储加密的DB文件。 否则,如果您真的需要(具有所有缺点),只需对其进行加密并将其存储为字节字段。
在PHP中,< code > MCRYPT _ get _ iv _ size(MCRYPT _ RIJNDAEL _ 256,MCRYPT _ MODE _ CBC);返回值32,因此显然表明AES-256需要32字节的初始化向量。但这是骗人的,正如< code>mcrypt_encrypt的注释中所说: 此外,不是AES-256,它是Rijndael分组密码的不同变体。如果您想要在mcrypt
本文向大家介绍.net core使用MD5加密解密字符串,包括了.net core使用MD5加密解密字符串的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了.net core使用MD5加密解密字符串的具体代码,供大家参考,具体内容如下 调用加密 解密看效果 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
我的代码如下: 有人来帮我吗