All language subtitles for Active Record Encryption _ Drifting Ruby (Transcribed on 23-Mar-2023 16-53-53)-zh-CN

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified) Download
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu

Original subtitles

在这一集中,我们将了解 ActiveRecord 加密,这是一个非常重要的部分

保护您的数据。

这与您可能会在设备或其他身份验证方法中看到的散列不同

你的密码被散列到数据库中,但它不再是可逆的

用原来的密码。

相反,当您登录时,您只需将该登录密码与散列值进行比较

存储在数据库中。

但是使用 ActiveRecord 加密,我们加密静态数据,所以在数据库中

级别,并且可以在我们的视图中解密。

所以在这个例子中,我们有我们的描述,这是一个动作文本,我们将加密

该数据以及密码。

因此,当我们创建用户时,看起来并没有发生任何特别的事情,直到您查看

在应用程序日志中。

所以如果我们向上滚动一点,我们可以看到这个用户是在哪里创建的,然后我们可以看到

密码,而不是将原始数据作为 talkosoup,它是加密的。

插入的动作文本也一样,正文是加密的,所以你不能真的

理解它的信息。

需要注意的一件重要事情是 Rails 在某些属性方面做得很好

将自动从日志中过滤其值。

所以你可以看到密码短语,我在这个示例应用程序中没有做任何不同的事情

对于密码,但是你会看到它以纯文本形式出现的描述,

如果需要保护此属性,那将是一个安全问题。

有很多原因让你想要使用活动记录加密之类的东西,

它的一些突出好处是,如果您的数据库曾经泄漏或日志被

曾经泄露过,那么获得该信息访问权限的演员将不会被授予隐私权

信息。

但是当然,通过加密,我们有解密层,这是在应用程序中完成的

级别,当我们使用这个应用程序时,我们能够以纯文本形式看到它。

所以我们要做的第一件事是调用 Rails 操作下划线文本,冒号安装,安装

动作文本的迁移,并完成所有设置,然后我们将生成一个脚手架

对于用户的表,我们会有一个名字,我们会有一个电子邮件地址,然后我们会有

某种受保护的信息,这些信息非常重要,不能泄露。

所以我们称之为密码。

因此,一旦我们完成了这项工作,我们就可以继续进行迁移,而当我们处于

终端,我们将继续运行命令 db,冒号加密,冒号初始化,然后我们可以

复制此输出并将其添加到我们的凭据中。

所以我们可以运行 bin Rails credentials,冒号编辑,然后我们可以简单地将它粘贴到这里。

如果您有多个环境,这也确实有效。

因此,如果您将环境标志传递到凭据编辑中,并在

环境喜欢开发,那么你就可以做同样的事情。

如果我想再次运行此命令以生成一组新的凭据,我们可以这样做,

所以我们可以将其下载到我们的产品和加密凭证中。

因此,我们将继续设置使用操作文本的描述。

所以在用户模型中,我们做了一个有富文本的。

我们将为描述设置它,如果我们想开始加密它,我们所要做的就是

do就是设置这个,加密它,等于true。

这就是启用操作文本加密所需要做的全部工作。

我们当然需要在允许的参数中进入用户的控制器,

我们还需要添加描述。

但是我们不必围绕加密做任何额外的事情。

视图的方式相同,在用户的表单中,我们可以进入这里,我将重用它

一些代码,而不是电子邮件,我们将有描述,然后我们可以将其更改为丰富的

文本区域。

所以现在我们有一个功能齐全的静态加密功能,用于操作文本。

这样做的好处是我们可能会在我们的许多领域使用动作文本

应用程序,但也许只有这个描述字段才是真正需要的

加密,因为它包含个人身份信息。

那么如果你已经创建了一个现代 Rails 应用程序,你可以在配置下

初始值设定项,并且应该有一个过滤器参数日志记录。

在这里,已经有一些例子。

如果我们需要根据描述添加一个额外的,我们可以在这里做,并且

所以现在每当我们将某些东西保存到数据库中,或者任何东西通过我们的应用程序

从用户输入中,这将被过滤掉,所以我们不会看到暗示文本

在日志中。

所以现在我们只需要处理密码。

为此,我们可以进行加密,我们可以指定我们的密码,仅此而已

必须做,现在这个属性将被静态加密。

但是,我们可能需要关注一些其他选项。

例如,如果您希望能够搜索此属性,您将不会

能够默认。

因为有一个名为 deterministic 的标志默认设置为 false。

如果你永远不需要查询密码,那么最好的做法是

将此设置为 false。

这将是最安全的数据存储方式。

但是如果有一个你确实需要查询这个的用例,那么你会想要设置

确定性设置为真。

所以这样,你将能够做一些事情,就像一个用户找到的,你

可以指定密码,然后你可以输入你需要的任何字符串。

并且因为密码短语属性设置为确定性的,那么你将能够

做这种查询。

但是,如果它设置为 false,那么您将无法查询密码,

在这个特定的例子中你只会得到一个零回报。

您可能想要做的另一件事,这更依赖于您的数据库,是忽略

案子。

您可以将其设置为 true。

您也可以将其设置为小写。

所以如果你有像电子邮件地址这样的东西,那么你可以在那个位置设置小写

为真。

所以当它被存储和加密时,实际上将值转换为小写。

如果您将使用忽略大小写,那么添加另一个属性将很重要

到您的数据库,这将是这种特殊情况下的密码。

但是您需要使用原始下划线和属性名称作为前缀。

通过添加该属性,您将能够使用这个忽略大小写,并且

这将在加密密码之前存储一个小写版本,但随后它

将密码短语存储在其原始文本中。

这在您进行查询时非常重要,这将非常重要

根据您的用例而有所不同。

根据您的情况,您可能需要执行一些验证,

我们也可以很容易地通过验证来做到这一点,然后我们指定我们的密码

在这种情况下。

我们可以做一些类似于唯一性的事情,我们可以将其设置为 true。

假设我们确实有某种我们正在做的序列化。

也许一个用户有一组设置,所以你添加了一个 JSON 数据类型,让我们

将其称为数据库设置,并且您想对其进行加密,因为它可能包含

一些敏感信息。

所以你添加了加密设置,然后你也添加了序列化设置。

也许我们会将其设置为散列或 JSON 或类似的东西。

这会起作用,但是,这里的一个问题是我们需要执行序列化

在加密之前,因为加密将依赖于对象

一个字符串,而不是像散列这样的更复杂的对象。

所以现在我们可以测试一下,我们将创建一个新用户,我们可以输入描述,

然后我们可以输入一些密码。

如果我们去展示页面,我们可以看到纯文本,L'Orealm Epsom of the

描述,我们可以看到密码。

如果我们转到日志并向上滚动一点,我们可以看到我们的帖子在哪里

为用户。

在此请求的打印件中,我们有用户名,如 Jane Doe,我们有

电子邮件地址,描述现在被过滤,所以我们没有看到纯文本版本

其中,以及密码短语默认情况下被过滤。

但如果不是,那么您可以将其添加到过滤器参数中,记录

在 Config Initializer 中。

甚至在创建用户并插入加密属性的 SQL 查询中

对于富文本,我们可以看到加密的密码以及正文

对于动作文本。

如果这是您需要添加到您的应用程序中的功能,那么我非常愿意

建议通读 ActiveRecord 加密文档。

ActiveRecord 加密的可扩展性比我们介绍的要好得多。

您可以围绕密钥管理执行不同的操作。

如果您有不同类型的策略需要用于加密,并且您是

甚至可以轮换密钥,前提是您提供以前的密钥,这样您就可以

所以解密内容,然后为任何新内容或更新添加活动密钥。

如果你意识到你需要在事后添加加密,那么在你已经

将您的数据库投入生产,现在确定其中一个属性

表确实需要加密。

您可以使用 ActiveRecord 加密开箱即用地执行此操作,您只需

在您的环境中设置。

他们可以计算 ActiveRecord 加密并支持未加密数据。

所以你仍然可以读取未加密的数据,但我认为这是

也很重要,现在它可能有某种速率任务,然后会占用所有

数据,然后对其进行加密。

因为您希望在数据库中保留其中一个已加密的列

一些未加密数据中的数据太长了。

我认为速率任务或可以快速加密所有数据的东西会

是你最好的选择。

然后你可以回来禁用这个标志。

并且对以前的加密方案也有很好的支持。

因此,假设您之前曾说过确定生病被设置为假,或者您

只是根本没有这个确定性标志。

它默认为 false,但现在您需要确定性,因为稍后会

你现在已经决定这需要是一个可编排的属性。

所以这里有很多有用的信息,很多信息确实是

具体用例取决于您当前遇到的情况。

好吧,这就是这一集的全部内容。

感谢收看。

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.