Encryption 记忆中的加密

Encryption 记忆中的加密,encryption,erlang,ejabberd,Encryption,Erlang,Ejabberd,如何加密mnesia数据库以及加密mnesia数据库最安全的方法是什么 erlang中是否有内置的方法来加密和解密高安全级别的数据?简短回答 没有 长话短说 数据库加密不是一个简单的主题 您必须首先确定加密数据库的含义。这是否意味着数据在内存中无法读取?它在磁盘上不可读吗?除了一个潜在的无上下文/无意义的单键外,它是否是不可查询的外部不透明斑点?一切都是单向的吗?高速比较哈希的唯一要求是什么?如果可逆,如何访问密钥?是在数据库中执行加密,还是数据库仅存储内容?等等 在Mnesia和任何其他DB值

如何加密mnesia数据库以及加密mnesia数据库最安全的方法是什么

erlang中是否有内置的方法来加密和解密高安全级别的数据?

简短回答

没有

长话短说

数据库加密不是一个简单的主题

您必须首先确定加密数据库的含义。这是否意味着数据在内存中无法读取?它在磁盘上不可读吗?除了一个潜在的无上下文/无意义的单键外,它是否是不可查询的外部不透明斑点?一切都是单向的吗?高速比较哈希的唯一要求是什么?如果可逆,如何访问密钥?是在数据库中执行加密,还是数据库仅存储内容?等等

在Mnesia和任何其他DB值中,必须可读才能在查询中使用。在像Postgres这样的重载DBs中,有一个加密的DB列意味着数据在磁盘上加密,而关于Postgres的其他事情意味着你永远不可能一次知道任何给定表中有多少在内存中——这意味着每次遍历尚未缓存在内存中的行时,磁盘数据必须动态解密和加密。性能时间严重受此影响

在这方面,Mnesia和ETS表可以使所有活动数据同时保存在内存中,而要查询其中的任何数据,则必须在内存中对数据进行加密。因为您可以为保存到磁盘设置明确的条件,所以将磁盘写入过程封装在对加密库的调用中是非常简单的,这样就可以在磁盘上对其进行加密,而在内存中则是明文,因此非常有用

另一方面,你用钥匙做什么是另一个问题

大多数时候,当我们讨论数据库加密时,我们真正的意思是,是否有一种方法可以将用户密码存储为散列而不是明文,而不是以这种方式存储整个数据存储中的每个值。这是一个非常不同的问题,因为要使密码有用,它们只需要具有可比性,而不需要保留原始密码。例如,考虑接受、加盐、加密和验证密码。< /P> 在任何数据系统都可以说提供了加密功能之前,加密数据库的含义需要澄清,而且总是存在权衡。

简短回答

没有

长话短说

数据库加密不是一个简单的主题

您必须首先确定加密数据库的含义。这是否意味着数据在内存中无法读取?它在磁盘上不可读吗?除了一个潜在的无上下文/无意义的单键外,它是否是不可查询的外部不透明斑点?一切都是单向的吗?高速比较哈希的唯一要求是什么?如果可逆,如何访问密钥?是在数据库中执行加密,还是数据库仅存储内容?等等

在Mnesia和任何其他DB值中,必须可读才能在查询中使用。在像Postgres这样的重载DBs中,有一个加密的DB列意味着数据在磁盘上加密,而关于Postgres的其他事情意味着你永远不可能一次知道任何给定表中有多少在内存中——这意味着每次遍历尚未缓存在内存中的行时,磁盘数据必须动态解密和加密。性能时间严重受此影响

在这方面,Mnesia和ETS表可以使所有活动数据同时保存在内存中,而要查询其中的任何数据,则必须在内存中对数据进行加密。因为您可以为保存到磁盘设置明确的条件,所以将磁盘写入过程封装在对加密库的调用中是非常简单的,这样就可以在磁盘上对其进行加密,而在内存中则是明文,因此非常有用

另一方面,你用钥匙做什么是另一个问题

大多数时候,当我们讨论数据库加密时,我们真正的意思是,是否有一种方法可以将用户密码存储为散列而不是明文,而不是以这种方式存储整个数据存储中的每个值。这是一个非常不同的问题,因为要使密码有用,它们只需要具有可比性,而不需要保留原始密码。例如,考虑接受、加盐、加密和验证密码。< /P>
在任何数据系统都可以说提供了加密功能之前,需要对加密数据库的含义进行澄清,而且总是存在权衡。

您能详细说明一下吗?在Erlang中,当然有加密和解密数据的方法,但这个问题很模糊,很难回答。也许你应该看看crypto lib看看zerodb白皮书,你可以在mnesia的基础上在查询级别使用类似的方法。你能详细说明一下吗?在Erlang中当然有加密和解密数据的方法,但这个问题很模糊,很难解决
答案。也许你应该看看加密库看看zerodb的白皮书,你可以在查询级别的mnesia之上使用类似的方法