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
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:00,000 --> 00:00:14,800 在这一集中,我们将了解 ActiveRecord 加密,这是一个非常重要的部分 2 00:00:14,800 --> 00:00:16,720 保护您的数据。 3 00:00:16,720 --> 00:00:21,920 这与您可能会在设备或其他身份验证方法中看到的散列不同 4 00:00:21,920 --> 00:00:27,840 你的密码被散列到数据库中,但它不再是可逆的 5 00:00:27,840 --> 00:00:29,840 用原来的密码。 6 00:00:29,840 --> 00:00:35,440 相反,当您登录时,您只需将该登录密码与散列值进行比较 7 00:00:35,440 --> 00:00:37,440 存储在数据库中。 8 00:00:37,440 --> 00:00:43,519 但是使用 ActiveRecord 加密,我们加密静态数据,所以在数据库中 9 00:00:43,519 --> 00:00:47,280 级别,并且可以在我们的视图中解密。 10 00:00:47,280 --> 00:00:53,120 所以在这个例子中,我们有我们的描述,这是一个动作文本,我们将加密 11 00:00:53,120 --> 00:00:56,160 该数据以及密码。 12 00:00:56,160 --> 00:01:01,760 因此,当我们创建用户时,看起来并没有发生任何特别的事情,直到您查看 13 00:01:01,760 --> 00:01:03,919 在应用程序日志中。 14 00:01:03,919 --> 00:01:08,960 所以如果我们向上滚动一点,我们可以看到这个用户是在哪里创建的,然后我们可以看到 15 00:01:08,960 --> 00:01:15,840 密码,而不是将原始数据作为 talkosoup,它是加密的。 16 00:01:15,840 --> 00:01:20,960 插入的动作文本也一样,正文是加密的,所以你不能真的 17 00:01:20,960 --> 00:01:23,360 理解它的信息。 18 00:01:23,360 --> 00:01:28,320 需要注意的一件重要事情是 Rails 在某些属性方面做得很好 19 00:01:28,320 --> 00:01:32,560 将自动从日志中过滤其值。 20 00:01:32,560 --> 00:01:38,080 所以你可以看到密码短语,我在这个示例应用程序中没有做任何不同的事情 21 00:01:38,080 --> 00:01:44,080 对于密码,但是你会看到它以纯文本形式出现的描述, 22 00:01:44,080 --> 00:01:48,880 如果需要保护此属性,那将是一个安全问题。 23 00:01:48,880 --> 00:01:53,440 有很多原因让你想要使用活动记录加密之类的东西, 24 00:01:53,440 --> 00:01:57,679 它的一些突出好处是,如果您的数据库曾经泄漏或日志被 25 00:01:57,679 --> 00:02:02,960 曾经泄露过,那么获得该信息访问权限的演员将不会被授予隐私权 26 00:02:02,960 --> 00:02:04,240 信息。 27 00:02:04,240 --> 00:02:09,440 但是当然,通过加密,我们有解密层,这是在应用程序中完成的 28 00:02:09,440 --> 00:02:15,600 级别,当我们使用这个应用程序时,我们能够以纯文本形式看到它。 29 00:02:15,600 --> 00:02:22,000 所以我们要做的第一件事是调用 Rails 操作下划线文本,冒号安装,安装 30 00:02:22,000 --> 00:02:28,640 动作文本的迁移,并完成所有设置,然后我们将生成一个脚手架 31 00:02:28,640 --> 00:02:33,600 对于用户的表,我们会有一个名字,我们会有一个电子邮件地址,然后我们会有 32 00:02:33,600 --> 00:02:39,120 某种受保护的信息,这些信息非常重要,不能泄露。 33 00:02:39,120 --> 00:02:41,519 所以我们称之为密码。 34 00:02:41,520 --> 00:02:46,000 因此,一旦我们完成了这项工作,我们就可以继续进行迁移,而当我们处于 35 00:02:46,000 --> 00:02:52,800 终端,我们将继续运行命令 db,冒号加密,冒号初始化,然后我们可以 36 00:02:52,800 --> 00:02:57,600 复制此输出并将其添加到我们的凭据中。 37 00:02:57,600 --> 00:03:04,880 所以我们可以运行 bin Rails credentials,冒号编辑,然后我们可以简单地将它粘贴到这里。 38 00:03:04,880 --> 00:03:08,000 如果您有多个环境,这也确实有效。 39 00:03:08,000 --> 00:03:12,480 因此,如果您将环境标志传递到凭据编辑中,并在 40 00:03:12,480 --> 00:03:16,560 环境喜欢开发,那么你就可以做同样的事情。 41 00:03:16,560 --> 00:03:21,520 如果我想再次运行此命令以生成一组新的凭据,我们可以这样做, 42 00:03:21,520 --> 00:03:26,000 所以我们可以将其下载到我们的产品和加密凭证中。 43 00:03:26,000 --> 00:03:31,040 因此,我们将继续设置使用操作文本的描述。 44 00:03:31,040 --> 00:03:34,120 所以在用户模型中,我们做了一个有富文本的。 45 00:03:34,120 --> 00:03:39,000 我们将为描述设置它,如果我们想开始加密它,我们所要做的就是 46 00:03:39,000 --> 00:03:42,680 do就是设置这个,加密它,等于true。 47 00:03:42,680 --> 00:03:47,160 这就是启用操作文本加密所需要做的全部工作。 48 00:03:47,160 --> 00:03:52,120 我们当然需要在允许的参数中进入用户的控制器, 49 00:03:52,120 --> 00:03:54,640 我们还需要添加描述。 50 00:03:54,640 --> 00:03:58,160 但是我们不必围绕加密做任何额外的事情。 51 00:03:58,160 --> 00:04:02,960 视图的方式相同,在用户的表单中,我们可以进入这里,我将重用它 52 00:04:02,960 --> 00:04:08,160 一些代码,而不是电子邮件,我们将有描述,然后我们可以将其更改为丰富的 53 00:04:08,160 --> 00:04:09,680 文本区域。 54 00:04:09,680 --> 00:04:15,800 所以现在我们有一个功能齐全的静态加密功能,用于操作文本。 55 00:04:15,800 --> 00:04:19,880 这样做的好处是我们可能会在我们的许多领域使用动作文本 56 00:04:19,880 --> 00:04:24,880 应用程序,但也许只有这个描述字段才是真正需要的 57 00:04:24,880 --> 00:04:29,800 加密,因为它包含个人身份信息。 58 00:04:29,800 --> 00:04:34,800 那么如果你已经创建了一个现代 Rails 应用程序,你可以在配置下 59 00:04:34,800 --> 00:04:39,040 初始值设定项,并且应该有一个过滤器参数日志记录。 60 00:04:39,040 --> 00:04:42,120 在这里,已经有一些例子。 61 00:04:42,120 --> 00:04:47,120 如果我们需要根据描述添加一个额外的,我们可以在这里做,并且 62 00:04:47,120 --> 00:04:52,840 所以现在每当我们将某些东西保存到数据库中,或者任何东西通过我们的应用程序 63 00:04:52,840 --> 00:04:58,240 从用户输入中,这将被过滤掉,所以我们不会看到暗示文本 64 00:04:58,240 --> 00:04:59,760 在日志中。 65 00:04:59,760 --> 00:05:02,599 所以现在我们只需要处理密码。 66 00:05:02,599 --> 00:05:07,920 为此,我们可以进行加密,我们可以指定我们的密码,仅此而已 67 00:05:07,920 --> 00:05:12,120 必须做,现在这个属性将被静态加密。 68 00:05:12,120 --> 00:05:16,640 但是,我们可能需要关注一些其他选项。 69 00:05:16,640 --> 00:05:21,360 例如,如果您希望能够搜索此属性,您将不会 70 00:05:21,360 --> 00:05:23,760 能够默认。 71 00:05:23,760 --> 00:05:28,760 因为有一个名为 deterministic 的标志默认设置为 false。 72 00:05:28,760 --> 00:05:33,200 如果你永远不需要查询密码,那么最好的做法是 73 00:05:33,200 --> 00:05:35,200 将此设置为 false。 74 00:05:35,200 --> 00:05:38,560 这将是最安全的数据存储方式。 75 00:05:38,560 --> 00:05:44,200 但是如果有一个你确实需要查询这个的用例,那么你会想要设置 76 00:05:44,200 --> 00:05:46,640 确定性设置为真。 77 00:05:46,640 --> 00:05:52,080 所以这样,你将能够做一些事情,就像一个用户找到的,你 78 00:05:52,080 --> 00:05:57,000 可以指定密码,然后你可以输入你需要的任何字符串。 79 00:05:57,000 --> 00:06:02,160 并且因为密码短语属性设置为确定性的,那么你将能够 80 00:06:02,160 --> 00:06:03,560 做这种查询。 81 00:06:03,560 --> 00:06:08,840 但是,如果它设置为 false,那么您将无法查询密码, 82 00:06:08,840 --> 00:06:12,680 在这个特定的例子中你只会得到一个零回报。 83 00:06:12,680 --> 00:06:17,640 您可能想要做的另一件事,这更依赖于您的数据库,是忽略 84 00:06:17,640 --> 00:06:18,640 案子。 85 00:06:18,640 --> 00:06:20,440 您可以将其设置为 true。 86 00:06:20,440 --> 00:06:22,800 您也可以将其设置为小写。 87 00:06:22,800 --> 00:06:27,200 所以如果你有像电子邮件地址这样的东西,那么你可以在那个位置设置小写 88 00:06:27,200 --> 00:06:28,200 为真。 89 00:06:28,200 --> 00:06:33,840 所以当它被存储和加密时,实际上将值转换为小写。 90 00:06:33,840 --> 00:06:39,520 如果您将使用忽略大小写,那么添加另一个属性将很重要 91 00:06:39,520 --> 00:06:44,480 到您的数据库,这将是这种特殊情况下的密码。 92 00:06:44,480 --> 00:06:49,400 但是您需要使用原始下划线和属性名称作为前缀。 93 00:06:49,400 --> 00:06:54,880 通过添加该属性,您将能够使用这个忽略大小写,并且 94 00:06:54,880 --> 00:07:01,359 这将在加密密码之前存储一个小写版本,但随后它 95 00:07:01,359 --> 00:07:04,960 将密码短语存储在其原始文本中。 96 00:07:04,960 --> 00:07:09,000 这在您进行查询时非常重要,这将非常重要 97 00:07:09,000 --> 00:07:11,400 根据您的用例而有所不同。 98 00:07:11,400 --> 00:07:15,840 根据您的情况,您可能需要执行一些验证, 99 00:07:15,840 --> 00:07:22,159 我们也可以很容易地通过验证来做到这一点,然后我们指定我们的密码 100 00:07:22,159 --> 00:07:23,159 在这种情况下。 101 00:07:23,159 --> 00:07:28,080 我们可以做一些类似于唯一性的事情,我们可以将其设置为 true。 102 00:07:28,080 --> 00:07:32,440 假设我们确实有某种我们正在做的序列化。 103 00:07:32,440 --> 00:07:37,679 也许一个用户有一组设置,所以你添加了一个 JSON 数据类型,让我们 104 00:07:37,679 --> 00:07:42,840 将其称为数据库设置,并且您想对其进行加密,因为它可能包含 105 00:07:42,840 --> 00:07:45,000 一些敏感信息。 106 00:07:45,000 --> 00:07:50,120 所以你添加了加密设置,然后你也添加了序列化设置。 107 00:07:50,120 --> 00:07:54,440 也许我们会将其设置为散列或 JSON 或类似的东西。 108 00:07:54,440 --> 00:08:00,920 这会起作用,但是,这里的一个问题是我们需要执行序列化 109 00:08:00,920 --> 00:08:05,840 在加密之前,因为加密将依赖于对象 110 00:08:05,840 --> 00:08:10,200 一个字符串,而不是像散列这样的更复杂的对象。 111 00:08:10,200 --> 00:08:15,640 所以现在我们可以测试一下,我们将创建一个新用户,我们可以输入描述, 112 00:08:15,640 --> 00:08:18,240 然后我们可以输入一些密码。 113 00:08:18,240 --> 00:08:23,760 如果我们去展示页面,我们可以看到纯文本,L'Orealm Epsom of the 114 00:08:23,760 --> 00:08:26,800 描述,我们可以看到密码。 115 00:08:26,800 --> 00:08:31,800 如果我们转到日志并向上滚动一点,我们可以看到我们的帖子在哪里 116 00:08:31,800 --> 00:08:33,120 为用户。 117 00:08:33,120 --> 00:08:38,159 在此请求的打印件中,我们有用户名,如 Jane Doe,我们有 118 00:08:38,159 --> 00:08:43,600 电子邮件地址,描述现在被过滤,所以我们没有看到纯文本版本 119 00:08:43,600 --> 00:08:47,600 其中,以及密码短语默认情况下被过滤。 120 00:08:47,600 --> 00:08:52,480 但如果不是,那么您可以将其添加到过滤器参数中,记录 121 00:08:52,480 --> 00:08:54,719 在 Config Initializer 中。 122 00:08:54,719 --> 00:09:01,319 甚至在创建用户并插入加密属性的 SQL 查询中 123 00:09:01,319 --> 00:09:07,240 对于富文本,我们可以看到加密的密码以及正文 124 00:09:07,240 --> 00:09:09,120 对于动作文本。 125 00:09:09,120 --> 00:09:13,560 如果这是您需要添加到您的应用程序中的功能,那么我非常愿意 126 00:09:13,560 --> 00:09:17,680 建议通读 ActiveRecord 加密文档。 127 00:09:17,680 --> 00:09:22,320 ActiveRecord 加密的可扩展性比我们介绍的要好得多。 128 00:09:22,320 --> 00:09:25,960 您可以围绕密钥管理执行不同的操作。 129 00:09:25,960 --> 00:09:30,440 如果您有不同类型的策略需要用于加密,并且您是 130 00:09:30,440 --> 00:09:35,960 甚至可以轮换密钥,前提是您提供以前的密钥,这样您就可以 131 00:09:35,960 --> 00:09:42,760 所以解密内容,然后为任何新内容或更新添加活动密钥。 132 00:09:42,760 --> 00:09:46,880 如果你意识到你需要在事后添加加密,那么在你已经 133 00:09:46,880 --> 00:09:52,040 将您的数据库投入生产,现在确定其中一个属性 134 00:09:52,040 --> 00:09:54,760 表确实需要加密。 135 00:09:54,760 --> 00:09:59,960 您可以使用 ActiveRecord 加密开箱即用地执行此操作,您只需 136 00:09:59,960 --> 00:10:02,080 在您的环境中设置。 137 00:10:02,080 --> 00:10:06,960 他们可以计算 ActiveRecord 加密并支持未加密数据。 138 00:10:06,960 --> 00:10:12,320 所以你仍然可以读取未加密的数据,但我认为这是 139 00:10:12,320 --> 00:10:17,040 也很重要,现在它可能有某种速率任务,然后会占用所有 140 00:10:17,040 --> 00:10:19,600 数据,然后对其进行加密。 141 00:10:19,600 --> 00:10:23,720 因为您希望在数据库中保留其中一个已加密的列 142 00:10:23,720 --> 00:10:27,400 一些未加密数据中的数据太长了。 143 00:10:27,400 --> 00:10:32,760 我认为速率任务或可以快速加密所有数据的东西会 144 00:10:32,760 --> 00:10:34,400 是你最好的选择。 145 00:10:34,400 --> 00:10:37,120 然后你可以回来禁用这个标志。 146 00:10:37,120 --> 00:10:41,040 并且对以前的加密方案也有很好的支持。 147 00:10:41,040 --> 00:10:46,000 因此,假设您之前曾说过确定生病被设置为假,或者您 148 00:10:46,000 --> 00:10:49,079 只是根本没有这个确定性标志。 149 00:10:49,079 --> 00:10:54,000 它默认为 false,但现在您需要确定性,因为稍后会 150 00:10:54,000 --> 00:10:58,720 你现在已经决定这需要是一个可编排的属性。 151 00:10:58,720 --> 00:11:03,560 所以这里有很多有用的信息,很多信息确实是 152 00:11:03,560 --> 00:11:08,200 具体用例取决于您当前遇到的情况。 153 00:11:08,200 --> 00:11:10,320 好吧,这就是这一集的全部内容。 154 00:11:10,320 --> 00:11:25,600 感谢收看。 14990

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