tokenpocket数字客户端钱包下载|tde

作者: tokenpocket数字客户端钱包下载
2024-03-07 21:23:16

透明数据加密 (TDE) - SQL Server | Microsoft Learn

透明数据加密 (TDE) - SQL Server | Microsoft Learn

跳转至主内容

此浏览器不再受支持。

请升级到 Microsoft Edge 以使用最新的功能、安全更新和技术支持。

下载 Microsoft Edge

有关 Internet Explorer 和 Microsoft Edge 的详细信息

目录

退出焦点模式

使用英语阅读

保存

目录

使用英语阅读

保存

打印

Twitter

LinkedIn

Facebook

电子邮件

目录

透明数据加密 (TDE)

项目

01/19/2024

29 个参与者

反馈

本文内容

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

透明数据加密 (TDE) 可以加密 SQL Server、Azure SQL 数据库和 Azure Synapse Analytics 数据文件。 这种加密方式称为静态数据加密。

为了帮助保护用户数据库的安全,可以采取以下预防措施:

设计安全的系统。

对机密资产加密。

在数据库服务器外围构建防火墙。

但恶意方如果窃取了硬盘或备份磁带等物理介质,就可以还原或附加数据库并浏览其数据。

一种解决方案是加密数据库中的敏感数据,并使用证书保护用于加密数据的密钥。 此解决方案可以防止没有密钥的人使用这些数据。 但必须提前规划好此类保护。

TDE 对数据和日志文件进行实时 I/O 加密和解密。 加密使用的是数据库加密密钥 (DEK)。 数据库启动记录存储该密钥,供还原时使用。 DEK 是对称密钥,由服务器的 master 数据库存储的证书或 EKM 模块所保护的非对称密钥提供保护。

TDE 保护静态数据,也就是数据和日志文件。 它让你可以遵循许多法律、法规和各个行业建立的准则。 借助此功能,软件开发人员可以使用 AES 和 3DES 加密算法来加密数据,且无需更改现有的应用程序。

注意

TDE 不适用于系统数据库。 不能用于加密 master、model 或 msdb。 tempdb 启用 TDE 但无法直接加密的用户数据库时,会自动加密。

TDE 不提供跨信道加密。 若要详细了解如何跨信道加密数据,请参阅配置 SQL Server 数据库引擎以加密连接。

相关主题:

Azure SQL 数据库、Azure SQL 托管实例和 Azure Synapse Analytics 的透明数据加密

Azure Synapse Analytics 中的透明数据加密 (TDE) 入门

将受 TDE 保护的数据库移到其他 SQL Server

使用 EKM 在 SQL Server 上启用 TDE

使用具有 SQL 加密功能的 SQL Server 连接器

有关 TDE 的常见问题解答的 SQL Server 安全博客

关于 TDE

数据库文件加密在页面级执行。 已加密数据库中的页在写入磁盘之前会进行加密,在读入内存时会进行解密。 TDE 不会增加已加密数据库的大小。

适用于 SQL 数据库的信息

将 TDE 与 Azure SQL 数据库一起使用时, SQL 数据库将自动为你创建存储在 master 数据库中的服务器级别证书。 若要在 SQL 数据库上移动 TDE 数据库,无需为移动操作解密数据库。 有关将 TDE 与 SQL 数据库一起使用的详细信息,请参阅 Azure SQL 数据库的透明数据加密。

适用于 SQL Server 的信息

保证数据库的安全后,可以使用正确的证书来还原数据库。 有关证书的详细信息,请参阅 SQL Server Certificates and Asymmetric Keys。

启用 TDE 后,立即备份证书及其关联的私钥。 如果证书不可用,或者如果在另一台服务器上还原或附加数据库,则需要备份证书和私钥。 否则,将无法打开数据库。 还应备份存储在“包含的系统数据库”中的证书。

即使你在数据库上禁用了 TDE,也要保留加密证书。 虽然数据库未加密,但事务日志的某些部分仍可能受到保护。 在执行完整的数据库备份之前,某些操作可能还需要使用证书。

你仍可使用超过过期日期的证书来通过 TDE 加密和解密数据。

加密层次结构

Windows 数据保护 API (DPAPI) 位于加密树的根目录中,在计算机级别保护密钥层次结构,并用于保护数据库服务器实例的服务主密钥 (SMK) 。 SMK 保护存储在用户数据库级别的数据库主密钥 (DMK),并保护证书和非对称密钥。 这些密钥反过来又保护对称密钥,进而保护数据。 TDE 使用与证书类似的层次结构。 使用 TDE 时,DMK 和证书必须存储在 master 数据库中。 仅用于 TDE 且称为数据库加密密钥 (DEK) 的新密钥将在用户数据库中创建和存储。

下图显示了 TDE 加密体系结构。 在 SQL 数据库上使用 TDE 时,用户仅能配置数据库级项目(数据库加密密钥和 ALTER DATABASE 部分)。

启用 TDE

若要使用 TDE,请按以下步骤操作。

适用于: SQL Server。

创建主密钥。

创建或获取由主密钥保护的证书。

创建数据库加密密钥并使用此证书保护该密钥。

将数据库设置为使用加密。

下面的示例演示如何使用安装在服务器上的 MyServerCert 证书来加密和解密 AdventureWorks2022 数据库。

USE master;

GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '';

GO

CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate';

GO

USE AdventureWorks2022;

GO

CREATE DATABASE ENCRYPTION KEY

WITH ALGORITHM = AES_256

ENCRYPTION BY SERVER CERTIFICATE MyServerCert;

GO

ALTER DATABASE AdventureWorks2022

SET ENCRYPTION ON;

GO

加密和解密操作由 SQL Server 安排在后台线程中执行。 若要查看这些操作的状态,可以使用本文后面部分显示的表中的目录视图和动态管理视图。

注意

启用了 TDE 的数据库备份文件也使用 DEK 进行加密。 因此,在还原这些备份时,用于保护 DEK 的证书必须可用。 因此,除了备份数据库之外,一定要注意维护好服务器证书的备份。 如果证书不再可用,就会造成数据丢失。

有关详细信息,请参阅 SQL Server Certificates and Asymmetric Keys。

命令和函数

对于接受 TDE 证书的以下语句,请使用数据库主密钥对其加密。 如果只用密码加密,这些语句将拒绝将它们视为加密程序。

重要

如果在 TDE 使用证书后将证书设置为密码保护,那么数据库在重启后将无法访问。

下表提供了 TDE 命令和函数的链接和说明:

命令或函数

目的

CREATE DATABASE ENCRYPTION KEY

创建用于加密数据库的密钥

ALTER DATABASE ENCRYPTION KEY

更改用于加密数据库的密钥

DROP DATABASE ENCRYPTION KEY

删除用于加密数据库的密钥

ALTER DATABASE SET 选项

介绍用来启用 TDE 的 ALTER DATABASE 选项

目录视图和动态管理视图

下表显示了 TDE 目录视图和动态管理视图 (DMV)。

目录视图或动态管理视图

目的

sys.databases

显示数据库信息的目录视图

sys.certificates

用于显示数据库中的证书的目录视图

sys.dm_database_encryption_keys

用于提供有关数据库加密密钥的信息以及加密状态的动态管理视图。

权限

如上表中所述,TDE 的每项功能和每个命令都有各自的权限要求。

查看 TDE 所涉及的元数据要求拥有对证书的 VIEW DEFINITION 权限。

注意事项

当进行数据库加密操作的重新加密扫描时,将禁用对数据库的维护操作。 可以使用数据库的单用户模式设置来执行维护操作。 有关更多信息,请参阅“将数据库设置为单用户模式”。

使用 sys.dm_database_encryption_keys 动态管理视图来查找数据库加密状态。 有关更多信息,请参阅本文前面的“目录视图和动态管理视图”部分。

在 TDE 过程中,数据库中的所有文件和文件组都进行加密。 如果将数据库中的任何文件组标记为 READ ONLY,数据库加密操作将会失败。

如果在数据库镜像或日志发送中使用数据库,则两个数据库都将进行加密。 日志事务在它们之间发送时,都是加密的。

重要

当数据库设置为加密时,将加密全文检索。 在 SQL Server 2005 (9.x) 及更早版本中创建的这些索引由 SQL Server 2008 (10.0.x) 及更高版本导入数据库,并由 TDE 加密。

提示

要监视数据库的 TDE 状态更改,请使用 SQL Server 审核或 Azure SQL 数据库审核。 对于 SQL Server,在审核操作组 DATABASE_OBJECT_CHANGE_GROUP 下跟踪 TDE,可在 SQL Server 审核操作组和操作中找到该组。

限制

在初始数据库加密、密钥更改或数据库解密期间,不允许执行下列操作:

从数据库中的文件组中删除文件

删除数据库

使数据库脱机

分离数据库

将数据库或文件组转换为 READ ONLY 状态

以下操作在 CREATE DATABASE ENCRYPTION KEY、ALTER DATABASE ENCRYPTION KEY、DROP DATABASE ENCRYPTION KEY 和 ALTER DATABASE...SET ENCRYPTION 语句中是不允许的:

从数据库中的文件组中删除文件

删除数据库

使数据库脱机

分离数据库

将数据库或文件组转换为 READ ONLY 状态

使用 ALTER DATABASE 命令

启动数据库或数据库文件备份

启动数据库或数据库文件还原

创建快照

以下操作或条件会阻止 CREATE DATABASE ENCRYPTION KEY、ALTER DATABASE ENCRYPTION KEY、DROP DATABASE ENCRYPTION KEY 和 ALTER DATABASE...SET ENCRYPTION 语句运行:

数据库为只读或包含只读文件组。

ALTER DATABASE 命令正在运行。

正在进行数据备份。

数据库处于脱机或还原状态。

正在创建快照。

正在运行数据库维护任务。

创建了数据库文件后,如果启用了 TDE,则无法执行即时文件初始化。

要使用非对称密钥加密 DEK,非对称密钥必须位于可扩展密钥管理提供程序上。

TDE 扫描

要在数据库上启用 TDE, SQL Server 必须执行加密扫描。 扫描将数据文件中的每个页面读入缓冲池,然后将加密页面写入磁盘。

为了让你对加密扫描有更多的控制权,SQL Server 2019 (15.x) 引入了 TDE 扫描,其中包含暂停和恢复语法。 你可以在系统工作量大时或在业务关键时段暂停扫描,然后稍后再恢复扫描。

使用以下语法暂停 TDE 加密扫描:

ALTER DATABASE SET ENCRYPTION SUSPEND;

同样,使用以下语法恢复 TDE 加密扫描:

ALTER DATABASE SET ENCRYPTION RESUME;

encryption_scan_state 列已被添加到 sys.dm_database_encryption_keys 动态管理视图。 它显示加密扫描的当前状态。 还有一个名为 encryption_scan_modify_date 的新列,此列包含上次加密扫描状态更改的日期和时间。

如果 SQL Server 实例在其加密扫描被暂停时重启,则会在启动时的错误日志中记录一条消息。 该消息指示已暂停现有扫描。

重要

暂停和恢复 TDE 扫描功能目前在 Azure SQL 数据库、Azure SQL 托管实例和 Azure Synapse Analytics 中不可用。

TDE 和事务日志

TDE 可保护静态数据文件和日志文件。 在未加密的数据库上启用 TDE 后加密整个数据库是一项相当大的数据操作,它所需的时间取决于运行此数据库的系统资源。 sys.dm_database_encryption_keys DMV 可用于确定数据库的加密状态。

打开 TDE 后,数据库引擎会强制创建新的事务日志,该事务日志将由数据库加密密钥加密。 在 TDE 状态更改之间交错的先前事务或当前长期运行事务生成的任何日志都不会加密。

可以使用 sys.dm_db_log_info DMV 监视事务日志,该 DMV 还使用 Azure SQL 以及 SQL Server 2019 (15.x) 及更高版本中提供的 vlf_encryptor_thumbprint 列显示日志文件是否已加密。 下面的查询示例演示了如何使用 sys.dm_database_encryption_keys 视图中的 encryption_state 列查找日志文件的加密状态:

USE AdventureWorks2022;

GO

/* The value 3 represents an encrypted state

on the database and transaction logs. */

SELECT *

FROM sys.dm_database_encryption_keys

WHERE encryption_state = 3;

GO

有关 SQL Server 日志文件体系结构的详细信息,请参阅事务日志。

在 DEK 更改之前,以前的 DEK 会对写入事务日志的所有数据进行加密。

如果更改 DEK 两次,则必须执行日志备份,然后才能再次更改 DEK。

TDE 和 tempdb 系统数据库

如果 SQL Server 实例中的任何其他数据库是使用 TDE 加密的,则会加密 tempdb 系统数据库。 这种加密可能会对同一个 SQL Server 实例上的未加密数据库产生性能影响。 有关 tempdb 系统数据库的详细信息,请参阅 tempdb 数据库。

TDE 和复制

复制不会以加密形式从启用了 TDE 的数据库中自动复制数据。 如果想保护分发和订阅服务器数据库,请单独启用 TDE。

快照复制可以将数据存储在未加密的中间文件(如 BCP 文件)中。 事务性复制和合并复制的初始数据分发也可以这样做。 在此类复制期间,可以启用加密来保护信道。

有关详细信息,请参阅将 SQL Server 数据库引擎配置为使用加密连接。

TDE 和可用性组

可将加密数据库添加到 Always On 可用性组。

要对属于可用性组的数据库进行加密,在主要副本上创建数据库加密密钥之前,请在所有次要副本上创建主密钥和证书或非对称密钥 (EKM)。

如果使用证书保护 DEK,请将在主要副本上创建的证书进行备份,然后在所有次要副本上从文件创建证书,再在主要副本上创建 DEK。

TDE 和 FILESTREAM 数据

即使启用了 TDE,也不会加密 FILESTREAM 数据。

TDE 和备份

证书通常用于透明数据加密,以保护 DEK。 必须在 master 数据库中创建证书。 启用了 TDE 的数据库备份文件也使用 DEK 进行加密。 因此,还原这些备份时,用于保护 DEK 的证书必须可用。 也就是说,除了备份数据库之外,你还要确保自己保留了服务器证书的备份,以防数据丢失。 如果证书不再可用会导致数据丢失。

删除 TDE

使用 ALTER DATABASE 语句从数据库中删除加密。

ALTER DATABASE SET ENCRYPTION OFF;

若要查看数据库的状态,请使用 sys.dm_database_encryption_keys 动态管理视图。

请先等到解密完成,再使用 DROP DATABASE ENCRYPTION KEY 删除 DEK。

重要

将用于 TDE 的主密钥和证书备份到安全位置。 需要主密钥和证书,才能还原使用 TDE 加密数据库时进行的备份。 删除 DEK 后,请进行日志备份,然后对解密的数据库进行全新完整备份。

TDE 和缓冲池扩展

在使用 TDE 加密数据库时,与缓冲池扩展 (BPE) 相关的文件不会被加密。 对于这些文件,使用文件系统级别的加密工具,如 BitLocker 或 EFS。

TED 和内存中 OLTP

可在拥有内存中 OLTP 对象的数据库上启用 TDE。 在 SQL Server 2016(13.x)和 Azure SQL 数据库中,如果启用 TDE,则内存中 OLTP 日志记录和数据将加密。 在 SQL Server 2014 (12.x) 中,如果启用 TDE,将对内存中 OLTP 日志记录加密,但不对 MEMORY_OPTIMIZED_DATA 文件组中的文件加密。

管理 TDE 中使用的证书的准则

为 TDE 启用数据库并在日志传送或数据库镜像中使用时,必需备份证书和数据库主密钥。 还应备份存储在“包含的系统数据库”中的证书。

绝不能从 master 数据库中删除用于保护 DEK 的证书。 这样做会导致加密的数据库无法访问。

如果在命令中使用的证书尚未备份,将在执行 CREATE DATABASE ENCRYPTION KEY 后出现类似如下消息(错误 33091)。

警告

尚未对用于加密数据库加密密钥的证书进行备份。 应当立即备份该证书以及与该证书关联的私钥。 如果证书变为不可用,或者如果必须在另一台服务器上还原或附加数据库,则必须同时具有证书和私钥的备份,否则将无法打开该数据库。

以下查询可以用于标识在创建 TDE 时尚未备份的证书。

SELECT pvt_key_last_backup_date,

Db_name(dek.database_id) AS encrypteddatabase,

c.name AS Certificate_Name

FROM sys.certificates c

INNER JOIN sys.dm_database_encryption_keys dek

ON c.thumbprint = dek.encryptor_thumbprint;

如果 pvt_key_last_backup_date 列为 NULL,则与该行对应的数据库已启用了 TDE,但用于保护其 DEK 的证书尚未备份。 有关备份证书的更多信息,请参阅“备份证书”。

相关内容

SQL Server 数据库引擎和 Azure SQL 数据库的安全

FILESTREAM (SQL Server)

SQL Server 加密

SQL Server 和数据库加密密钥(数据库引擎)

反馈

此页面是否有帮助?

提供产品反馈

|

在 Microsoft Q&A 获取帮助

反馈

Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see: https://aka.ms/ContentUserFeedback.

提交和查看相关反馈

此产品

此页面

查看所有页面反馈

其他资源

加州消费者隐私法案 (CCPA) 禁用图标

你的隐私选择

主题

高对比度

早期版本

博客

参与

隐私

使用条款

商标

© Microsoft 2024

其他资源

本文内容

加州消费者隐私法案 (CCPA) 禁用图标

你的隐私选择

主题

高对比度

早期版本

博客

参与

隐私

使用条款

商标

© Microsoft 2024

【TED演讲合集】2020年精选TED英文演讲【双语字幕】_哔哩哔哩_bilibili

【TED演讲合集】2020年精选TED英文演讲【双语字幕】_哔哩哔哩_bilibili 首页番剧直播游戏中心会员购漫画赛事投稿【TED演讲合集】2020年精选TED英文演讲【双语字幕】

124.0万

2391

2020-10-27 14:50:25

2.3万553410.1万7530www.ted.com

TED是全球最大最具影响力的演讲平台,每年会邀请来自世界各领域的顶尖人士分享他们的优秀思想。

TED容纳演讲者毕生所思,在思考和提升自我认知的同时,也是具有超高性价比的英语学习利器。

毫不夸张的说,其中演讲者们信手拈来的口语表达、语法灵用以及地道发音,好学又实用!

TED Conferences LLC is an American media organization that posts talks online for free distribution.知识校园学习TED演讲英语英文英语演讲英文演讲

英文演讲

发消息

公号:英文

关注 8.8万

智能AI桌宠,培养你的专属伙伴!视频选集(1/84)自动连播TED双语字幕 | 年度最受欢迎十大TED演讲第一名:再平淡无聊的生活,也可以变得有趣起来TED英语

362.7万

2844

【纪录片】BBC NHU创新的60年25 上帝视角俯瞰地球哔哩哔哩纪录片

2.8万

58

“中国奥巴马”的卸任演说箭厂视频

18.8万

265

【喜剧/爱情】老友记 第一季 01(1994)【詹妮弗·安妮斯顿/柯特妮·考克斯】迷影社

3613.1万

5.8万

奥巴马演讲:你为什么要好好学习!(中英文)yunvoo

123.5万

1726

我要是记忆力也这么好, 一天背1000个单词!英语兔

373.0万

3684

【小猪佩奇学英语】第一季,基础词汇量 2000串串英语

547.7万

5381

【TED】建议全文背诵!TED播放量最高的十篇演讲TED励志演讲

38.0万

310

TED演讲:如何解决焦虑?TED精选演讲

181.3万

1930

【纪录片】世界航运 04 巨型港口哔哩哔哩纪录片

8.8万

11

【Day61】每日英语听力保姆级,盲听+英文+中英+跟读+盲听,反复听!直到听懂每个单词!坚持下去听力突飞猛进!光速英语君

35.1万

279

【英文有声书】30部英美经典文学(精读)学习星球

121.0万

1244

TED英语演讲:成长的意义,就是寻找自己环球纪录频道

68.0万

426

《走遍美国》78集全(中英双语字幕)亮亮子明

79.8万

3838

【100集全】英文动画 英语跟读学习精选YouTube精品课

509.4万

9213

世上最美的英文(精选收藏合集), 适合朗读和练听力英语兔

352.0万

7694

【700集全】经典美音 美中小学教学原版教材精讲Mmxgxg

346.3万

3.5万

TED演讲:脆弱的力量!【双语字幕】TED英语演说

11.8万

206

一分钟英文演讲:Nothing is impossible起床背单词啦

8.7万

61

【TED日语演讲合集】(中日双语)2023TED日语口语听力精选【高清版】akkppllio

4.0万

28

展开

小窗

客服

顶部

赛事库 课堂 2021

什么是透明数据加密TDE(Transparent Data Encryption) - 知乎

什么是透明数据加密TDE(Transparent Data Encryption) - 知乎切换模式写文章登录/注册什么是透明数据加密TDE(Transparent Data Encryption)李敢敢​一只新鲜的数据安全产品经理SQL Server 2008添加了透明数据加密(TDE)。其主要目标是通过加密物理文件(如数据(mdf)和日志(ldf)文件)而不是数据本身来保护数据。The entire encryption procedure was meant to be fully transparent to the apps accessing the database with this technique.它通过使用高级加密标准AES或三重DES对文件页进行加密,然后在信息进入内存时对其进行解密来实现这一点。TDE防止了对查询加密数据库中的数据施加约束。这是有效的实时I/O加密和解密,不会影响数据库的大小。在本文中,我们将更详细地讨论TDE,并了解使用此过程的一些好处。什么是TDE?TDE(透明数据加密)在SQL 2008中引入,作为一种在数据“静止”时保护数据的机制。当我们谈论已写入磁盘的数据时,我们谈论的是“静止”数据。透明数据加密的工作机制很简单。它使用数据库加密密钥或DEK实时进行输入/输出数据加密和解密。包括SQL数据库的任何数据文件、数据库的任何日志文件、数据库备份文件、数据库快照文件以及TempDB数据库中的任何数据都可以通过TDE保护。TDE主要采用基于AES的加密技术(也称为高级加密标准)。可以选择在设置TDE时使用的AES算法:AES 128、AES 192或AES 256。该数字表示在每种情况下用于加密的密钥长度(以位为单位)。透明数据加密的好处它可以确保对敏感数据进行加密,满足法规遵从性要求,并简化加密活动。如果存储介质或数据文件被盗,敏感数据是加密的,因此数据是相对安全的。TDE有助于解决与安全相关的法规遵从性挑战。不需要补充表、触发器或视图来解密授权用户或应用程序的数据。对于数据库用户和应用程序,表中的数据是透明解密的。TDE可用于为处理敏感数据的应用程序提供稳健的数据加密,而对应用程序的更改最少或没有更改。对于访问此数据的数据库用户和程序,数据将被可视地解密。数据库的用户和应用程序不需要知道他们正在访问的信息是加密的。通过利用在线表重新定义,可以在生产系统上加密数据而不停机。不需要对应用程序进行任何更改。TDE需要面对的挑战应用程序中动态或保存的数据不加密,因为它只对静止数据进行加密。不仅是敏感数据,数据库中的所有数据都是加密的。压缩备份将显著减少执行的压缩量。发布于 2022-12-05 14:08・IP 属地北京数据加密加密​赞同​​添加评论​分享​喜欢​收藏​申请

TED_网易公开课

TED_网易公开课

登录/注册

已购课程

个人中心

已购课程

优惠券

我的收藏

播放记录

我的证书墙

退出

内容中心

关注我们

网易公开课

全部课程

首页

TED

国际名校公开课

中国大学视频公开课

可汗学院

精品课程

赏课

直播

客户端下载

扫码下载网易公开课APP

确认

取消

{{banner.ext2 || '课程'}}

{{banner.title}}

登录跟进你的学习进度

立即登录

退出登录

{{userInfo.nickName}}

上好人生每一课

个人中心

TED全网首播

更多精彩>

【TED】从羞耻感到自爱的奇异之旅

【TED】为何被盗的非洲文物还在西方国家的博物馆中

【TED】一个美国天气预报员的极端天气报告

【TED】世界上最罕见的疾病,和它们对我们的影响

TED合集推荐

更多精彩>

什么是爱

共10集

身体语言

改变世界的发明

伟大预言

最新TED

艺术

心理

技能

医学

经济

环境

计算机

查看更多

TED译者信息

查看更多

客户端下载

扫描或点击下载

About NetEase-

公司简介-

联系方式-

招聘信息-

客户服务-

隐私政策-

网络营销-

网站地图-

公开课用户服务协议-

不良信息举报 Complaint Center

增值电信业务经营许可证 粤B2-20090191

工业和信息化部备案管理系统网站 粤B2-20090191-18

APP下载

反馈

进入关怀模式

天津电装电子有限公司 | 集团公司 | 关于电装 | 电装中国网站

天津电装电子有限公司 | 集团公司 | 关于电装 | 电装中国网站

To use all available functions on this website, JavaScript must be enabled in your browser.

DRIVEN BASE

DENSO Crafting the Core

关于电装

业务介绍

职业发展

新闻

Global

关于电装

业务介绍

职业发展

新闻

Contact Us

Global

Back to Index

Index

关于电装

全球电装

电装中国

电装中国 TOP

行政管理

采购 产品与环境

集团公司

电装小红人住在DENSO World

Index

业务介绍

业务领域

工业产品

服务

Index

职业发展

电装的职业

Index

新闻

新闻

微信

Global

Global

Global Network

DENSO Crafting the Core

关于电装

业务介绍

职业发展

新闻

Global

关于电装

业务介绍

职业发展

新闻

Contact Us

Global

Back to Index

Index

关于电装

全球电装

电装中国

电装中国 TOP

行政管理

采购 产品与环境

集团公司

电装小红人住在DENSO World

Index

业务介绍

业务领域

工业产品

服务

Index

职业发展

电装的职业

Index

新闻

新闻

微信

Global

Global

Global Network

天津电装电子有限公司

天津电装电子有限公司

天津电装电子有限公司于1997年成立,坐落于天津经济技术开发区,公司占地面积10万平方米,拥有员工2000余人,是由电装(中国)投资有限公司和丰田通商株式会社共同出资成立的外商投资企业。公司主要产品有发动机ECU、安全气囊ECU、组合仪表、主车体ECU、智能钥匙、新能源车用逆变器等汽车电子零部件产品。公司自成立以来,以“环保”和“安全”为己任,以传递“关爱”和“喜悦”为使命,为实现“人、车和谐共存”的汽车社会而不懈努力。公司连续多年获得天津市百强企业、优秀外商投资企业、开发区百强企业、劳资关系和谐企业。公司秉承“以人为本”的理念,注重改善劳资关系,开通多种员工沟通途径,2020年,获得全国厂务公开民主管理示范企业。公司取得ISO14001、OHSAS18001、ITAF16949、AEO高级认证等多项认证。公司将以成为“让社会信赖,有魅力的公司”为目标,持续开展各项活动。

天津电装电子有限公司

成立时间

1997

主要业务

汽车等电子控制产品及零部件的制造和销售

地址

中国天津经济技术开发区洞庭路166号

电话

+86-22-2532-7684

传真

+86-22-2532-7683

总经理

都築 昭人(AKIHITO TSUZUKI)

电装投资比例

93%

企业活动(SDGs/CSR等)

 

防暑降温慰问活动

Check in DENSO

获取电装中国范围内的最新信息

Home

关于电装

集团公司

天津电装电子有限公司

DENSO Crafting the Core

Cookie政策

联系我们

网站地图

隐私策略

使用条款

DENSO CORPORATION.

什么是安全TDE透明数据加密_云原生数据库 PolarDB(PolarDB)-阿里云帮助中心

什么是安全TDE透明数据加密_云原生数据库 PolarDB(PolarDB)-阿里云帮助中心

产品解决方案文档与社区权益中心定价云市场合作伙伴支持与服务了解阿里云售前咨询 95187-1 在线服务售后咨询 4008013260 在线服务其他服务 我要建议 我要投诉更多联系方式备案控制台

文档产品文档输入文档关键字查找

云原生数据库 PolarDB

动态与公告

产品简介

产品计费

快速入门

运维指南

自研内核能力

插件指南

Ganos时空引擎

性能白皮书

性能调优指南

API参考

SDK下载

常见问题

术语

相关协议

首页

云原生数据库 PolarDB

云原生数据库PolarDB PostgreSQL版

自研内核能力

安全可靠

TDE透明数据加密

TDE透明数据加密更新时间:一键部署产品详情相关技术圈我的收藏

透明数据加密TDE(Transparent Data Encryption)通过在数据库层执行透明的数据加密,阻止可能的攻击者绕过数据库直接从存储层读取敏感信息。前提条件支持的PolarDB PostgreSQL版的版本如下: PostgreSQL 14(内核小版本14.5.1.1及以上)PostgreSQL 11(内核小版本1.1.1及以上)说明 您可通过如下语句查看PolarDB PostgreSQL版的内核小版本的版本号:PostgreSQL 14select version();PostgreSQL 11show polar_version;背景信息在中国,为了保证互联网信息安全,国家要求相关服务开发商需要满足一些数据安全标准,例如:《国家密码法》(2020年1月1日施行)。《网络安全等级保护基本要求》(GB/T 22239-2019)。在国际上,一些相关行业也有监管数据安全标准,例如:Payment Card Industry Data Security Standard (PCI DSS)Health Insurance Portability and Accountability Act (HIPAA)General Data Protection Regulation (GDPR)California Consumer Protection Act (CCPA)Sarbanes-Oxley Act (SOX)为了满足保护用户数据安全的需求,PolarDB推出TDE功能。经过数据库身份验证的用户可以透明(不需要更改应用代码或配置)地访问数据,而尝试读取表空间文件中敏感数据的OS用户以及尝试读取磁盘或备份信息的不法之徒将不允许访问明文数据。术语名词描述KEK(Key Encryption Key)密钥加密密钥。用密钥对密钥进行经一步加密。MDEK(Memory Data Encryption Key)存在于内存的数据加密密钥。通过pg_strong_random随机生成,存在内存中,作为实际加密数据的密码。TDEK(Table Data Encryption Key)表数据加密密钥。由MDEK经过HKDF算法生成,存在内存中,作为实际加密数据的密码。WDEK(Wal Data Encryption Key)日志数据加密密钥。由MDEK经过HKDF算法生成,存在内存中,作为实际加密数据的密码。HMACK(Hash-based Message Authentication Code of Key)基于哈希消息认证码算法生成的密钥。passphrase经过SHA-512加密后生成KEK和HMACK。KEK_HMAC(Hash-based Message Authentication Code of Key Encryption Key)基于哈希消息认证码算法生成的密钥加密密钥摘要。ENCMDEK和HMACK经过HMAC算法生成KEK_HMAC,用于还原密钥时的校验信息。ENCMDEK(Encode Memory Data Encryption Key)存在于内存的数据加密密钥。由KEK加密MDEK生成ENCMDEK。原理介绍密钥管理模块密钥结构采用2层密钥结构,即密钥加密密钥和表数据加密密钥。表数据加密密钥是实际对数据库数据进行加密的密钥。密钥加密密钥则是对表数据加密密钥进行进一步加密的密钥。两层密钥的详细介绍如下:密钥加密密钥(KEK),以及KEK的校验值HMACK:通过运行polar_cluster_passphrase_command参数中命令并计算SHA-512后得到64字节的数据,其中前32字节为顶层加密密钥KEK,后32字节为HMACK。表数据加密密钥(TDEK)和WAL日志加密密钥(WDEK):通过密码学中的安全随机数生成器生成的密钥,是数据和WAL日志加密的真正密钥。两个密钥加密后的密文使用HMACK作为密钥,经过HMAC算法得到rdek_hmac和wdek_hmac,用于密钥KEK的校验,保存在共享存储上。KEK和HMACK每次都是通过外部获取。例如,KMS,测试的时候可以直接通过echo passphrase得到。ENCMDEK和KEK_HMAC需要保存在共享存储上,用来保证下次启动时RW和RO都可以读取该文件,获取真正的加密密钥。其数据结构如下:typedef struct KmgrFileData

{

/* version for kmgr file */

uint32 kmgr_version_no;

/* Are data pages encrypted? Zero if encryption is disabled */

uint32 data_encryption_cipher;

/*

* Wrapped Key information for data encryption.

*/

WrappedEncKeyWithHmac tde_rdek;

WrappedEncKeyWithHmac tde_wdek;

/* CRC of all above ... MUST BE LAST! */

pg_crc32c crc;

} KmgrFileData;该文件当前是在initdb时产生,这样就可以保证Standby通过pg_basebackup获取到。在集群运行状态下,TDE相关的控制信息保存在进程的内存中,结构如下:static keydata_t keyEncKey[TDE_KEK_SIZE];

static keydata_t relEncKey[TDE_MAX_DEK_SIZE];

static keydata_t walEncKey[TDE_MAX_DEK_SIZE];

char *polar_cluster_passphrase_command = NULL;

extern int data_encryption_cipher;密钥加密数据库初始化时需要生成密钥,过程示意图如下所示:运行polar_cluster_passphrase_command得到64字节的KEK + HMACK,其中KEK长度为32字节,HMACK长度为32字节。调用OpenSSLopen 中的随机数生成算法生成MDEK。使用MDEK调用OpenSSL的HKDF算法生成TDEK。使用MDEK调用OpenSSL的HKDF算法生成WDEK。使用KEK加密MDEK生成ENCMDEK。ENCMDEK和HMACK经过HMAC算法生成KEK_HMAC用于还原密钥时的校验信息。将ENCMDEK和KEK_HMAC补充的其他KmgrFileData结构信息写入global/kmgr文件。密钥解密当数据库崩溃或重新启动等情况下,需要通过有限的密文信息解密出对应的密钥,其过程如下:读取global/kmgr文件获取ENCMDEK和KEK_HMAC。运行polar_cluster_passphrase_command得到64字节的KEK + HMACK。ENCMDEK和HMACK经过HMAC算法生成KEK_HMAC'。比较KEK_HMAC和KEK_HMAC'两者是否相同。如果相同,继续下一步;如果不同则报错返回。使用KEK解密ENCMDEK生成MDEK。使用MDEK调用OpenSSL的HKDF算法生成TDEK,因为是特定的info,所以可以生成相同TDEK。使用MDEK调用OpenSSL的HKDF算法生成WDEK,因为是特定的info,所以可以生成相同WDEK。密钥更换密钥更换的过程可以理解为先用旧的KEK还原密钥,然后再用新的KEK生成新的kmgr文件。其过程如下图所示:读取global/kmgr文件获取ENCMDEK和KEK_HMAC。运行polar_cluster_passphrase_command得到64字节的KEK + HMACK。ENCMDEK和HMACK经过HMAC算法生成KEK_HMAC'。比较KEK_HMAC和KEK_HMAC'两者是否相同。如果相同,继续下一步;如果不同则报错返回。使用KEK解密ENCMDEK生成MDEK。运行polar_cluster_passphrase_command得到64字节新的new_KEK + new_HMACK。使用new_KEK加密MDEK生成new_ENCMDEK。new_ENCMDEK和new_HMACK经过HMAC算法生成new_KEK_HMAC用于在还原密钥时校验信息。将new_ENCMDEK和new_KEK_HMAC补充的其他KmgrFileData结构信息写入global/kmgr文件。加密模块我们期望对所有的用户数据按照Page的粒度进行加密,加密方法采用AES-128/256加密算法(产品化默认使用AES-256)。(page LSN,page number) 作为每个数据页加密的IV,IV是可以保证相同内容加密出不同结果的初始向量。每个Page的头部数据结构如下:typedef struct PageHeaderData

{

/* XXX LSN is member of *any* block, not only page-organized ones */

PageXLogRecPtr pd_lsn; /* LSN: next byte after last byte of xlog

* record for last change to this page */

uint16 pd_checksum; /* checksum */

uint16 pd_flags; /* flag bits, see below */

LocationIndex pd_lower; /* offset to start of free space */

LocationIndex pd_upper; /* offset to end of free space */

LocationIndex pd_special; /* offset to start of special space */

uint16 pd_pagesize_version;

TransactionId pd_prune_xid; /* oldest prunable XID, or zero if none */

ItemIdData pd_linp[FLEXIBLE_ARRAY_MEMBER]; /* line pointer array */

} PageHeaderData;说明 其中:pd_lsn不能加密,因为解密时需要使用IV来解密。pd_flags增加是否加密的标志位0x8000,并且不加密,这样可以兼容明文Page的读取,为增量集群打开TDE提供条件。pd_checksum不加密,这样可以在密文条件下判断Page的校验和。加密文件当前加密含有用户数据的文件。例如,加密数据目录中以下子目录中的文件:base/global/pg_tblspc/pg_replslot/pg_stat/pg_stat_tmp/何时加密当前对于按照数据Page来进行组织的数据,将按照Page来进行加密。Page落盘之前必定需要计算校验和,即使校验和相关参数关闭,也会调用校验和相关的函数PageSetChecksumCopy或PageSetChecksumInplace。所以,只需要计算校验和之前加密Page,即可保证用户数据在存储上是被加密的。解密模块存储上的Page读入内存之前必定经过checksum校验,即使相关参数关闭,也会调用校验函数PageIsVerified。所以,只需要在校验和计算之后解密,即可保证内存中的数据已被解密。

反馈本页导读 (0)文档反馈

为什么选择阿里云什么是云计算全球基础设施技术领先稳定可靠安全合规分析师报告产品和定价全部产品免费试用产品动态产品定价价格计算器云上成本管理解决方案技术解决方案文档与社区文档开发者社区天池大赛培训与认证权益中心免费试用高校计划企业扶持计划推荐返现计划支持与服务基础服务企业增值服务迁云服务官网公告健康看板信任中心关注阿里云关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务售前咨询:95187-1售后服务:400-80-13260法律声明及隐私权政策Cookies政策廉正举报安全举报联系我们加入我们阿里巴巴集团淘宝网天猫全球速卖通阿里巴巴国际交易市场1688阿里妈妈飞猪阿里云计算AliOS万网高德UC友盟优酷钉钉支付宝达摩院淘宝海外阿里云盘饿了么© 2009-2024 Aliyun.com 版权所有 增值电信业务经营许可证: 浙B2-20080101 域名注册服务机构许可: 浙D3-20210002 京D3-20220015浙公网安备 33010602009975号浙B2-20080101-4

使用透明数据加密对表和索引加密解密_云数据库 RDS(RDS)-阿里云帮助中心

使用透明数据加密对表和索引加密解密_云数据库 RDS(RDS)-阿里云帮助中心

产品解决方案文档与社区权益中心定价云市场合作伙伴支持与服务了解阿里云售前咨询 95187-1 在线服务售后咨询 4008013260 在线服务其他服务 我要建议 我要投诉更多联系方式备案控制台

文档产品文档输入文档关键字查找

云数据库 RDS

产品概述

快速入门

自研内核AliSQL

操作指南

实践教程

安全合规

开发参考

服务支持

首页

云数据库 RDS

RDS MySQL数据库

操作指南

数据安全与加密

设置透明数据加密TDE

设置透明数据加密TDE更新时间:一键部署产品详情相关技术圈我的收藏

在安全合规或静态数据加密等场景下,推荐使用透明数据加密TDE(Transparent Data Encryption)功能,对数据文件执行实时I/O加密和解密,通过在数据库层执行静态数据加密,阻止可能的攻击者绕过数据库直接从存储中读取敏感信息,有效提高数据库中敏感数据的安全性。背景信息TDE通过在数据库层执行静止数据加密,阻止可能的攻击者绕过数据库直接从存储中读取敏感信息。经过数据库身份验证的应用和用户可以继续透明地访问应用数据(不需要更改应用代码或配置),而尝试读取表空间文件中的敏感数据的OS用户以及尝试读取磁盘或备份信息的未知用户将不允许访问明文数据。开启透明数据加密TDE功能后,会对数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密。TDE不会增加数据文件的大小,开发人员无需更改任何应用程序,即可使用TDE功能。TDE加密使用的密钥由密钥管理服务(KMS)产生和管理,RDS不提供加密所需的密钥和证书。您不仅可以使用阿里云自动生成的密钥,也可以使用自定义密钥,授权RDS使用。说明 开通后,根据实例版本不同,加密算法如下:RDS MySQL 8.0、5.7:AES_256_CBCRDS MySQL 5.6:AES_128_ECB前提条件实例类型如下: RDS MySQL 8.0高可用系列本地盘实例(内核小版本20191015及以上)RDS MySQL 5.7高可用系列本地盘实例(内核小版本20191015及以上)RDS MySQL 5.6说明 如需升级内核小版本,请参见升级内核小版本。已开通密钥管理服务(KMS)。如果您未开通KMS,可在开通TDE过程中根据引导开通KMS。注意事项为保证实例的稳定性,建议您将内核小版本升级到最新。如果主实例包含只读实例,建议将所有只读实例和主实例的内核小版本都升级到最新。更多信息,请参见升级内核小版本。TDE开通过程中会重启实例造成实例切换,请做好业务安排,谨慎操作。实例切换的影响请参见实例切换的影响。TDE开通后无法关闭。TDE开通后无法修改密钥。TDE开通后,用户如果要恢复数据到本地,需要先通过RDS解密数据。TDE开通后,会显著增加CPU使用率。使用已有自定义密钥时,需要注意: 禁用密钥、设置密钥删除计划或者删除密钥材料都会造成密钥不可用。撤销授权关系后,重启RDS实例会导致RDS实例不可用。需要使用主账号或者具有AliyunSTSAssumeRoleAccess权限的账号。说明 关于密钥的相关操作请参见密钥管理服务。使用由阿里云自动生成的密钥开通TDE访问RDS实例列表,在上方选择地域,然后单击目标实例ID。在左侧导航栏单击数据安全性。在TDE页签单击未开通左边的滑块。 选择使用由阿里云自动生成的密钥,单击确定,开通TDE。 说明 该方式使用的加密密钥(KEK)为KMS的服务密钥。 使用已有自定义密钥开通TDE访问RDS实例列表,在上方选择地域,然后单击目标实例ID。在左侧导航栏单击数据安全性。在TDE页签单击未开通左边的滑块。 选择 使用已有自定义密钥,选择密钥,单击确定,开通TDE。 说明 如果没有自定义密钥,需要单击前往创建,在密钥管理服务控制台创建密钥并导入自带的密钥材料。详情请参见创建密钥。加密操作登录数据库,执行如下命令,对要加密的表进行加密。MySQL 5.6 alter table engine=innodb,block_format=encrypted;MySQL 5.7或8.0 alter table encryption='Y';解密操作如果您要对TDE加密的表解密,请执行如下命令:MySQL 5.6 alter table engine=innodb,block_format=default;MySQL 5.7或8.0 alter table encryption='N';常见问题开启TDE后,常用数据库工具(Navicat等)还能正常使用吗? 可以正常使用。开启TDE后,还能正常迁移数据到其他RDS实例吗?可以正常迁移。加密后查看数据为什么还是明文的? 查询数据时会解密并读取到内存,所以是明文显示。开启TDE可以防止备份泄露导致数据泄露,备份文件是加密的,无法用于恢复到本地,如果要恢复数据到本地,需要先解密数据。更多信息,请参见本文的解密操作章节。相关文档如果您还需要对实例访问链路进行加密,可以开启SSL链路加密,具体操作请参见设置SSL加密。关于密钥的相关操作请参见密钥管理服务。RDS MySQL透明数据加密TDE测试报告RDS SQL Server设置透明数据加密RDS PostgreSQL设置透明数据加密相关APIAPI描述开启TDE开启RDS实例透明数据加密时,需将TDEStatus参数设置为Enabled,其他参数请按需设置。

反馈本页导读 (1)文档反馈

为什么选择阿里云什么是云计算全球基础设施技术领先稳定可靠安全合规分析师报告产品和定价全部产品免费试用产品动态产品定价价格计算器云上成本管理解决方案技术解决方案文档与社区文档开发者社区天池大赛培训与认证权益中心免费试用高校计划企业扶持计划推荐返现计划支持与服务基础服务企业增值服务迁云服务官网公告健康看板信任中心关注阿里云关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务售前咨询:95187-1售后服务:400-80-13260法律声明及隐私权政策Cookies政策廉正举报安全举报联系我们加入我们阿里巴巴集团淘宝网天猫全球速卖通阿里巴巴国际交易市场1688阿里妈妈飞猪阿里云计算AliOS万网高德UC友盟优酷钉钉支付宝达摩院淘宝海外阿里云盘饿了么© 2009-2024 Aliyun.com 版权所有 增值电信业务经营许可证: 浙B2-20080101 域名注册服务机构许可: 浙D3-20210002 京D3-20220015浙公网安备 33010602009975号浙B2-20080101-4

SQL Server安全(9/11):透明数据加密(Transparent Data Encryption) - Woodytu - 博客园

SQL Server安全(9/11):透明数据加密(Transparent Data Encryption) - Woodytu - 博客园

会员

周边

新闻

博问

AI培训

云市场

所有博客

当前博客

我的博客

我的园子

账号设置

简洁模式 ...

退出登录

注册

登录

Woodytu

MS SQL Passion. Live like How SQL Server thinks.

博客园

首页

新随笔

联系

订阅

管理

SQL Server安全(9/11):透明数据加密(Transparent Data Encryption)

在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切。但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念。这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间。

从让人眼花缭乱的客户端使用连接,通过到处分布的网络,尤其是互联网,关系数据库在各种应用程序里广泛使用。这使数据对任何人,在任何地方都可访问。数据库可以保存人类知识的很大部分,包括高度敏感的个人信息和让国际商务工作的关键数据。

对于想要偷取数据或通过篡改数据来伤害数据的拥有者的 人来说,这些功能使数据库成为有吸引力的目标。确保你的数据安全是SQL Server配置和使用它来保存数据的程序的重要部分。这个系列会探寻SQL Server 2012安全的基本,这样的话你可以保护你的数据和服务器资源,按你需要的安全等级来保护数据,免受这些威胁对你数据的影响。大部分信息对SQL Server的早期版本也适用,回到SQL Server 2005也可以,因为那是微软在产品里彻底检查安全的时候。但我也会谈论只在SQL Server 2012和后续版本里才有的功能。

如果攻击者能拿到包含数据库的磁盘文件的访问,即使做好防护的数据还是容易受到攻击。单元格级别的加密可以保护部分数据,但应付这列攻击的完整保护是必须加密文件而不是数据。这就是透明数据加密(Transparent Data Encryption (TDE))要做的,在这篇文章里你会学到TDE做什么,如何工作,还有如何使用它来保护你的数据库文件。

透明数据加密(Transparent Data Encryption (TDE))

在SQL Server 2008,微软引入了透明数据加密(Transparent Data Encryption (TDE))。TDE可以在文件层对数据和日志文件进行实时加密和解密。不需要特定的编程,尽管有支持的T-SQL管理TDE,在这篇文章里稍后你就会看到。这让TDE很容易配置和维护,尽管当的复制和移动数据库到不同位置和SQL Server实例时需要更多工作。

TDE在写入数据库就加密数据,然后在读取的时候解密数据,一旦你在数据库启用TDE就会自动处理。TDE的目的是在数据库和日志里,保护休息时的数据库,保持它的安全,远离直接从文件直接访问数据的攻击者。有个特定的场景对此非常有用,当你需要通过一夜包裹投递服务来运输你的数据库文件,例如FedEx或UPS。没有TDE,攻击者可以从运输卡车后面偷取你的包裹,附加数据库到他有sysadmin权限的SQL Server实例,拿到数据访问。但如果在数据库上启用了TDE,整个数据被安全加密了;没有密匙的话,就不能访问到数据。其它TDE也很有用的场景是担心例如内部的攻击者,可以用任何方式获得物理文件的访问,或者你需要保持归档数据库副本的安全。

TDE如何工作

TDE需要证书来访问物理数据库文件。没有证书来加密数据库,数据只是无法使用的,加密的一堆胡言乱语。这就是说不能在数据库附近的任何地方放置证书的备份,这个非常重要——例如在用来运输数据库文件的同个FedEx包裹里!不然的话,攻击者有他想要的一切东西。他需要做的只是在他控制的SQL Server实例上安全证书,用它来附加数据库,给她解密数据的完全访问。

TDE加密所有写入数据库的数据,理解这个非常重要。然后它解密需要的数据来响应查询。因此只有当数据在休息的时候,存储在数据库里,它才受TDE保护。TDE在读写数据的时候会在8K的页里加密或解密数据。

如果SQL Server实例的任何数据库,即使几十个中的一个数据库附加到实例,受TDE保护的,那么SQL Server自动用TDE保护tempdb。即使受TDE保护的数据库不使用tempdb。这样做是有道理的,因为从受保护的一些数据会自动存储在tempdb。数据会在休息——即使很短的时间——因此完整保护tempdb同样需要使用TDE保护。这样会带来性能上的问题。所有的数据在tempdb里加密保存,在实例里所有的其它未受TDE保护的数据库,有任何数据存储在tempdb的话也会被加密。因此这些数据库的性能也会受到影响。

要配置TDE,你需要有创建数据库主密匙,在mater数据里创建一个证书,在用户数据库上有CONTROL许可来启用TDE。大多数时间,sysadmin可以在数据库上启用TDE,因此需要的许可不是问题。

TDE的局限性

为了高效使用TDE,你应该理解TDE做什么和它有什么好和不好的地方。考虑下TDE的这些限制:

在数据库里你不能加密一部分数据;要么全部加密,要么都不加密。

TDE不是通过数据库引擎限制数据访问的方法。数据访问不受TDE改变。如果你有一个用户运行的程序,用户和应用程序有访问数据库里数据的许可。TDE不会修改数据访问方法。它只是保护数据库文件。

TDE不是保护你服务器、数据库实例或数据库里各个敏感数据的替代品,你还是要认真考虑,在各层使用安全措施保护你的数据库。TDE只是设计用来保护特定攻击(在数据或日志文件里休息时的数据)的一层保护。

TDE一个最大的缺点之一是FILESTREAM数据不会加密。这个数据字节流存储在SQL Server之外,但受SQL Server管理和监控。

TDE仅在SQL Server的企业版和开发版可用。很遗憾,这让不使用这2个版本的用户不能受TDE的保护。

如你所见,这些限制没有TDE作什么用的限制多,这表示它不能作为安全的灵丹妙药那么有用。但是如果对你数据的威胁对应于它提供的保护,TDE会是重要的安全功能。

TDE性能

但你看TDE时,有一个你要考虑的问题是性能。考虑到需要的处理周期,加密是个昂贵的操作。TDE表现还是相当不错的,因为TDE不在SQL 缓存里加密数据。只有当它写入磁盘时才加密数据。因此如果它不在缓存的话,每次你访问数据的时候也不需要加密,这提高了全局的效率。在数据库里,微软花了大量的时间让加密尽可能的高效。但当数据被读写时,还是会带来一定的性能问题,因为加密要用到复杂的算法。

使用TDE

现在我们通过实例来演示下你如何使用TDE,还有它在数据库上的作用。下列代码显示了备份AdventureWorks2012数据库,然后还原了一个新的数据库AdventureWorks2012Copy。你可以按照自己的实际情况修改文件路径,例如文件备份路径,C:\Data文件夹用来备份证书。

1 -- *** Beginning of setup code ***

2 -- *******************************

3

4 -- Make a copy of AdventureWorks2012 database

5 -- Change the path to the appropriate backup directory

6 BACKUP DATABASE AdventureWorks2012

7 TO DISK = N'D:\SQLBackups\AdventureWorks2012.bak'

8 WITH NOFORMAT, INIT, NAME = N'AdventureWorks2012 Full Database Backup',

9 SKIP, NOREWIND, NOUNLOAD, STATS = 10;

10 GO

11

12 RESTORE DATABASE AdventureWorks2012Copy

13 FROM DISK = N'D:\SQLBackups\AdventureWorks2012.bak'

14 WITH

15 FILE = 1, NOUNLOAD, REPLACE, STATS = 10,

16 MOVE 'AdventureWorks2012_Data' TO N'D:\SQLData\AdventureWorks2012Copy.mdf',

17 MOVE 'AdventureWorks2012_Log' TO N'D:\SQLData\AdventureWorks2012Copy.ldf';

18 GO

19

20 -- *** End of setup code ***

21 -- *************************

一旦你进行了下列配置步骤,代码进行了4个步骤为数据库启用TDE:

在master数据库里创建主密匙。

创建/使用受主密匙保护的证书。

创建受证书保护的数据库加密密匙。

为数据库启用TDE。

代码9.1展示了在master数据库里创建证书需要的代码,在数据库里它用来保护数据库加密密匙。它创建数据库主密匙,使用强密码保护它,然后创建AdventureWorks2012TDECert证书。作为预防,代码然后备份证书到D:\Data目录。你应该在稳妥可靠的地方存储它,在你移动受TDE保护的数据库的时候就可以用到它。

1 USE master;

2 GO

3

4 -- TDE hooks into encryption key hierarchy in SQL Server

5 CREATE MASTER KEY ENCRYPTION BY PASSWORD = '!drJP9QXC&Vi%cs';

6 GO

7

8 -- Create the certificate used to protect the database encryption key

9 CREATE CERTIFICATE AdventureWorks2012TDECert WITH SUBJECT = 'Certificate to implement TDE on AdventureWorks2012Copy';

10 GO

11

12 -- Backup the certificate

13 -- Either create the C:\Data folder or change it in the code below

14 BACKUP CERTIFICATE AdventureWorks2012TDECert TO FILE = 'D:\Data\AdventureWorks2012TDECert'

15 WITH PRIVATE KEY ( FILE = 'D:\Data\AdventureWorks2012TDECertPrivateKey' ,

16 ENCRYPTION BY PASSWORD = 'RISiS9Ul%CByEk6' );

17 GO

代码9.1:创建并备份用来保护TDE数据库的证书

在进一步使用TDE之前,运行代码9.2,这个列出的代码在SQL Server的当前实例里加密数据库,连同它们的加密状态,如果有的话。在新的,刚安装的SQL Server,这应该返回一个空的结果。接下来,在实施TDE后,你会看到状态如何改变。

1 SELECT DB_NAME(database_id) AS DatabaseName,

2 key_algorithm AS [Algorithm],

3 key_length AS KeyLength,

4 CASE encryption_state

5 WHEN 0 THEN 'No database encryption key present, no encryption'

6 WHEN 1 THEN 'Unencrypted'

7 WHEN 2 THEN 'Encryption in progress'

8 WHEN 3 THEN 'Encrypted'

9 WHEN 4 THEN 'Key change in progress'

10 WHEN 5 THEN 'Decryption in progress'

11 END AS EncryptionStateDesc,

12 percent_complete AS PercentComplete

13 FROM sys.dm_database_encryption_keys;

14 GO

代码9.2 在SQL Server实例里列出加密数据库的状态

现在是时候对AdventureWorks2012Copy数据库启用TDE。执行代码9.3,它开始使用你刚才在master数据库里创建的证书创建数据库加密密匙。你会收到一条警告信息:如果你还没备份证书的话,请备份;请留意这个建议!然后代码使用SET ENCRYPTION ON子句的ALTER DATABASE语句为数据库启用TDE。取决于与数据库的大小和服务器的速度,完全加密数据库需要一些时间,可能几个小时或几天。

1 USE AdventureWorks2012Copy;

2 GO

3

4 -- Create the database encryption key for TDE. Analogous to database master key for data encryption.

5 CREATE DATABASE ENCRYPTION KEY

6 WITH ALGORITHM = TRIPLE_DES_3KEY

7 ENCRYPTION BY SERVER CERTIFICATE AdventureWorks2012TDECert;

8 GO

9 -- Get a warning about backing up the key, if you haven't already

10 -- ...take the advice and back it up!

11

12 -- Now need to turn TDE on.

13 ALTER DATABASE AdventureWorks2012Copy SET ENCRYPTION ON;

代码9.3:创建数据库加密密匙并启用TDE

当在加密数据库的时候,可以反复执行代码9.2来跟踪下进度。你会看到如插图9.1的结果,我在截屏的时候,已经100%完成了。注意插图显示了2个数据库:现在在实例里至少有一个数据库使用TDE,tempdb也会自动加密。一旦初始化加密完成,所有的数据库PercentComplete列会显示为0(是的,这个数字有点误导,因为当它完成的时候不是100%这样的显示)。

插图9.1:使用sys.dm_database_encryption_keys来监控数据库加密进度的结果

注意在图中AdventureWorks2012Copy数据库使用了Triple DES加密算法。那是我们在代码9.1里指定的算法,你可以用SQL Server支持的任何加密算法选项。还有tempdb默认也使用256位AES加密算法。

通过执行对数据库的查询测试加密,如代码9.4所示。在打开TDE之前,只要你有必要的许可访问数据库,你就能访问数据。这对任何应用程序的数据访问也是如此。

1 SELECT TOP 500 * FROM Production.Product;

代码9.4:在启用TDE后测试数据库访问的样本代码。

如果你想为数据库关闭TDE,你可以使用代码9.5:

1 ALTER DATABASE AdventureWorks2012Copy

2 SET ENCRYPTION OFF;

3 GO

代码9.5:为数据库停用TDE

测试TDE

测试下安全功能确保它如你预计的正常工作总是明智的。样本代码包含测试TDE的一些步骤,包括你不小心删除用来为TDE保护数据库加密密匙的证书。代码9.5备份AdventureWorks2012Copy数据库,删除AdventureWorks2012TDECert证书,模拟丢失证书。(这也模拟了当你附加加密数据库到不同的SQL Server实例,它上面并没有安装原始的证书。)

1 BACKUP DATABASE AdventureWorks2012Copy

2 TO DISK = N'D:\SQLBackups\AdventureWorks2012Copy.bak'

3 WITH NOFORMAT, INIT, NAME = N'AdventureWorks2012Copy Full Database Backup',

4 SKIP, NOREWIND, NOUNLOAD, STATS = 10;

5 GO

6

7 USE master

8 GO

9 DROP DATABASE AdventureWorks2012Copy;

10 GO

11

12 -- Oops! We lost the certificate and don't have a copy!

13 -- Or, going to restore the database to another server instance

14 DROP CERTIFICATE AdventureWorks2012TDECert;

15 GO

代码9.6:备份数据库,删除数据库,扔掉了证书

接下来,尝试使用代码9.7还原数据库,你会收到如插图9.2的错误信息。这是TDE在起作用的保护:如果数据库实例没有安装原始加密证书,是不可能还原或附加数据库的。

1 RESTORE DATABASE AdventureWorks2012Copy

2 FROM DISK = N'D:\SQLBackups\AdventureWorks2012Copy.bak'

3 WITH

4 FILE = 1, NOUNLOAD, REPLACE, STATS = 10;

代码9.7:尝试还原受TDE保护的数据库

插图9.2:尝试在没有安装保护证书的数据库上还原数据库

但如果你备份了证书,并没有丢失全部!使用代码9.8从备份文件里还原证书,使用文件里刚才用来保护证书的密码,然后尝试还原数据库。这次完全可用的数据库——还是用TDE保护——已经成功还原。

1 -- Recover from the problem

2 -- Restore the certificate

3 CREATE CERTIFICATE AdventureWorks2012TDECert

4 FROM FILE = 'D:\DATA\AdventureWorks2012TDECert'

5 WITH PRIVATE KEY ( FILE = 'D:\DATA\AdventureWorks2012TDECertPrivateKey',

6 DECRYPTION BY PASSWORD = 'RISiS9Ul%CByEk6');

7

8 -- Now try to restore the database

9 RESTORE DATABASE AdventureWorks2012Copy

10 FROM DISK = N'D:\SQLBackups\AdventureWorks2012Copy.bak'

11 WITH

12 FILE = 1, NOUNLOAD, REPLACE, STATS = 10;

代码9.8:从备份文件还原删除的证书,然后再次尝试还原数据库

TDE与列级别数据加密比较

通过在这篇和上一篇文章,你应该能很好的理解SQL Server提供的两种主要加密方式,还有什么时候使用它们。总结下与在列级别数据库加密的主要不同:

加密更加颗粒化。你可以在单个数据库里单个列加密。

加密的数据只有使用的时候才会解密。如果数据不使用,基本就不会被解密。

你需要修改表架构来适应加密的字节流数据,修改应用程序来包含加密和解密代码。

你不能简单的搜索和排序加密数据,索引毫无用处。有一些变通方法,但它们没有效率并暴露数据特征,攻击者可以用来得到解决困难的方法。

通常,你会想为小量数据使用列级别数据加密来保护大多数敏感信息,在服务器上节约处理周期。

这引出了一个问题:在SQL Server 2008和后续版本应该使用哪个加密方式?关键是要理解你要保护面对的威胁,但实施任何安全功能时,这个是关键。

如果威胁是窃取、数据库和日志文件的滥用,使用透明数据加密(Transparent Data Encryption)。TDE会阻止附加数据库到另一个SQL Server实例和获得数据访问。

如果威胁是在你服务器上的入侵数据,列级别加密没准是更好的选择。当黑客在数据库服务器上拿到访问后,正确实施的列级别数据加密可以阻止数据访问。

如果你两者之间不能选择,你可能需要同时面对两种威胁。幸运的是,2个可以结合使用,各个会阻止它特定的威胁。

小结

透明数据加密(Transparent Data Encryption)进行数据和日志文件的实时加密和解密。这个会在数据库和日志里加密所有数据,阻止攻击着从另一个SQL Server实例附加数据库,获得数据访问。如果你需要防范的威胁是数据文件的滥用,TDE可以提供强的数据保护,不需要架构和程序改变。使用得当的话,它可以为整体深度防御,提供强大的安全层。

原文链接

http://www.sqlservercentral.com/articles/Stairway+Series/125948/

注:此文章为WoodyTu学习MS SQL技术,收集整理相关文档撰写,欢迎转载,请在文章页面明显位置给出此文链接!

若您觉得这篇文章还不错请点击下右下角的推荐,有了您的支持才能激发作者更大的写作热情,非常感谢!

posted @

2016-04-06 07:59 

Woodytu 

阅读(3813) 

评论(0) 

编辑 

收藏 

举报

会员力量,点亮园子希望

刷新页面返回顶部

公告

Copyright © 2024 Woodytu

Powered by .NET 8.0 on Kubernetes

如何开启透明数据加密TDE_云数据库 Redis 版(Redis)-阿里云帮助中心

如何开启透明数据加密TDE_云数据库 Redis 版(Redis)-阿里云帮助中心

产品解决方案文档与社区权益中心定价云市场合作伙伴支持与服务了解阿里云售前咨询 95187-1 在线服务售后咨询 4008013260 在线服务其他服务 我要建议 我要投诉更多联系方式备案控制台

文档产品文档输入文档关键字查找

云数据库 Redis 版

产品概述

快速入门

操作指南

实践教程

安全合规

开发参考

服务支持

视频专区

首页

云数据库 Redis 版

操作指南

账号与安全

开启透明数据加密TDE

开启透明数据加密TDE更新时间:一键部署产品详情相关技术圈我的收藏

云数据库Redis支持透明数据加密TDE(Transparent Data Encryption),可对RDB数据文件执行加密和解密。您可以通过控制台启用TDE功能,对RDB数据进行自动加密和解密,以满足提升数据安全性及合规需要。前提条件实例存储介质为Redis企业版内存型。实例部署模式为经典(原本地盘)。实例的小版本为1.7.1及以上,升级方法请参见升级小版本。背景信息云数据库Redis的TDE功能可以将RDB数据文件在写入磁盘之前进行加密,从磁盘读入内存时进行解密,具有不额外占用存储空间、无需更改客户端应用程序等优势。图 1. TDE加密影响由于开启TDE功能后无法关闭,在开启前,需要评估对业务的影响,具体如下:暂不支持迁移可用区操作。暂不支持离线全量Key分析操作。暂不支持将该实例转换为全球分布式实例。暂不支持通过DTS执行迁移或同步数据。注意事项TDE的开启粒度为实例级别,不支持Key(键)或DB(库)粒度的控制。TDE加密对象为数据落盘文件(即RDB备份文件,如dump.rdb)。TDE所使用的密钥,由密钥管理服务KMS(Key Management Service)统一生成和管理,云数据库Redis不提供加密所需的密钥和证书。实例回收站不支持恢复已开启TDE的实例。操作步骤访问Redis实例列表,在上方选择地域,然后单击目标实例ID。在左侧导航栏,单击TDE设置。打开TDE状态右侧的开关。说明 如果小版本过低,该开关将处于不可单击状态,查看及升级小版本的方法,请参见升级小版本。在弹出的对话框中,选择使用自动生成密钥或使用自定义密钥,然后单击确定。图 2. 开启TDE选择密钥说明 如果您的阿里云账号首次为Redis实例开启TDE功能,请根据页面弹出的提示完成授权(授权的角色为AliyunRdsInstanceEncryptionDefaultRole),授权完成后才可以使用相关密钥服务。关于自定义密钥的创建方法,请参见创建密钥。设置完成后,实例状态改为TDE修改中,当实例状态转变为运行中表示操作完成。相关APIAPI接口说明ModifyInstanceTDE为Redis实例开启透明数据加密TDE功能,支持自定义或自动生成密钥。DescribeInstanceTDEStatus查询Redis实例是否开启了TDE加密功能。DescribeEncryptionKeyList查询Redis实例的TDE加密功能可使用的自定义密钥列表。DescribeEncryptionKey查询Redis实例的透明数据加密TDE自定义密钥的详情。CheckCloudResourceAuthorized查询Redis实例是否已被授权使用KMS密钥服务。常见问题Q:下载了加密后的RDB数据文件,如何进行解密?A:目前无法解密,您可以将备份集恢复至新实例,恢复完成后,数据即完成自动解密。Q:为什么客户端读取到的数据还是明文显示的?A:加密的对象是数据落盘文件(即RDB备份文件),而查询数据时读取的是内存数据(未被加密),所以是明文显示。

反馈本页导读 (1)文档反馈

为什么选择阿里云什么是云计算全球基础设施技术领先稳定可靠安全合规分析师报告产品和定价全部产品免费试用产品动态产品定价价格计算器云上成本管理解决方案技术解决方案文档与社区文档开发者社区天池大赛培训与认证权益中心免费试用高校计划企业扶持计划推荐返现计划支持与服务基础服务企业增值服务迁云服务官网公告健康看板信任中心关注阿里云关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务售前咨询:95187-1售后服务:400-80-13260法律声明及隐私权政策Cookies政策廉正举报安全举报联系我们加入我们阿里巴巴集团淘宝网天猫全球速卖通阿里巴巴国际交易市场1688阿里妈妈飞猪阿里云计算AliOS万网高德UC友盟优酷钉钉支付宝达摩院淘宝海外阿里云盘饿了么© 2009-2024 Aliyun.com 版权所有 增值电信业务经营许可证: 浙B2-20080101 域名注册服务机构许可: 浙D3-20210002 京D3-20220015浙公网安备 33010602009975号浙B2-20080101-4

【TDE】全美最强厂牌 - 歌单 - 网易云音乐

【TDE】全美最强厂牌 - 歌单 - 网易云音乐

 

 

【TDE】全美最强厂牌

rgrrrr

2019-05-10 创建

播放

(301)

(44)

下载

(73)

标签:

欧美

说唱

R&B/Soul

介绍:

TDE的Studio(House of Pain)坐落于加州,在这间看似破旧的Studio里,无数的商业评论界的奇迹将在这里展开…

2004年,Anthony Tiffith(也就是Top Dawg本人)迫于街头生活的压力,当然也受到他叔叔的r&b单曲...

介绍:

TDE的Studio(House of Pain)坐落于加州,在这间看似破旧的Studio里,无数的商业评论界的奇迹将在这里展开…

2004年,Anthony Tiffith(也就是Top Dawg本人)迫于街头生活的压力,当然也受到他叔叔的r&b单曲在90年代成功的影响,急于与洛杉矶当地优秀的音乐人合作,冲出加州这片“腔林弹雨”。他购买了一些录音设备,TDE的雏形在这时开始…

当然,签艺人这事儿也是商业运作必不可少的部分。

Jay Rock,当时是Top Dawg的邻居(真巧),关系也还不错,Top Dawg将干着不法勾当的Jay Rock邀请进了录音室…

K.Dot也是在那个时候被Top Dawg看中,当时K.Dot只是一个当地的毛头小子,仍然处于摸索期。而当Free(TDE创始人之一)将Kdot的demo发给Top Dawg后,K.Dot开始意识到自己可能还真的有点东西(滑稽),他去录音室见了Top Dawg,并且在2倍bpm的伴奏下发挥的游刃有余,Top Dawg一看,我去这不得了啊,赶紧将K.Dot收入麾下,这里的K.Dot也就是现在的西海岸新王Kendrick Lamar。

那么关于你们的学校男孩Schoolboy Q,在童年随着他离婚的妈妈来到了Gang横行的Los Angeles。因为在高中优秀的学业而获得了Schoolboy这样的一个绰号,可后来却因加入了帮派而停止了学业,在帮派Hoover Crip里他迅速将业务拓展到贩卖那玩意。这样的经历,在他的专辑中也都有写到。

AB-Soul,没有位置介绍了。个人觉得他玩词的功底是非常强的。

上面四位也是组成了Super Rap Crew—Black Hippy,虽然现在已是名存实亡,但是他们仍然给我们输送过大量的优质作品。

TDE近几年的运作可谓是相当成功,个人认为TDE无论在商业或者艺术上都是做的最棒的那个,无愧于全美第一Label的名号(当然是我自己冠的)lol

不得不说Top Dawg还是从Dr.Dre那儿学了很多营销技巧的。TDE抓住了网络发展的潮流趋势,这使得Kendrick Lamar的Overly Delicated在没有任何宣传的情况下销出了8000张,一年后的Section80更是在没有电台宣传的情况下狂销100000张。

其余艺人介绍在评论区,往下翻。

展开

歌曲列表

50首歌

播放:9533次

生成外链播放器

加载中...

AlrightSing About Me, I'm Dying Of ThirstRigamortusKeisha's Song (Her Pain)Never Catch Me (feat. Kendrick Lamar)JoHn MuirGangstaPrescription/OxymoronRide OutBlank Face

Qvw9unR4axsdjkffyjgRk9sb/TOPUQfmdEpHgjpMH1A4fTOCHKsUYO+Ti6UiNEytGmv5RNnv81+2J4gQubCex8

5g4Ws4BEwFYZZYc7ZnFO+03RfiEiJthGPUrobbeo56AEJMLLtPsto7GBJY3iOLTy4qrR+c2OALE4

g6BI2d2Vv6CV+21qm7Sd9T3fkXqzYe7dBDW+KTtyUtFAphfD4IDIVZf0UhpmlQSJIbBTVpr7RrLg

ZKr/rQ71GgT79Y3NytuKcaqqRK218rQhuIUwXX9J+ewND8sB7i6dGPGdu4y+OpAHhRD7enEVIfEN

+3yd01tx1cHI7resOw/tgDBTBXTcyMAvedwhFmT1vralEMlyISR031m01ovSEonqsFPJEL/mVP/x

LPx8N/tFsI0w+0F2R0GkshPrSQ/pNdz7a4o2Mkj/JYsFIc0LP78WhXVJRSE7ZEUuSoJhOPYSnA6o

mBC/VkueDt0eEAf7s5+3IYPnh/FCbwcKRDqglU8IMFu+7NGe/IUScb5JSF61Pt77E/FPvlY4Nvyw

3f2SD3U5U/u4TDX3AdYio7sE+6/rw0iMVtw8kqQSeZC18Z0FIYnNO7bXybZVyUcQVqs35nfH5/sz

9wF26HxKn6H1AB84Zfsg/UQbGQF6sEmlEInSOvu0wxBo6OBvCufWIYlZYvsfGYBtVEFdBXIFDmIP

w3YsSTXX+5KFYrYyQm4t+SH7inyDhe+W4Mn/R6pAt2uJa8pNSlb1OjEhuqOWkLuJrd0g7WvWdMEL

5xruca6F9xPY9X9TkBeYVXtXCjiA+/UEMK/YhbsX/avJL36wq02qGKSgUqEOs6o88fs4bQ1dOa6O

Dox5PdqgV3pTql2gdCKog8F2pjjJIUf+zQFxPiyOFTCVo/W1AKc5YWkw03SS65AhbQi3Bsof6DGU

r3S3GS+BmazrXRrydDWUjaCQCkdI1qwORw71Vr54Nt2iLyoAjMkHfN2O4mqAsUEjFmvqhXm4IS32

Gt578pb1TxosXWve3em3IyLJODEOEAU5Dt67pnwQ8t5JXYIHJIBUD+s5SYygYiFEjDoePtOgjLiA

+/WDsa86hYnZZoehkgtetouqGNjdXUh/nNM8SPvxTdKLqhE/voUmlQWoOCoBS1lJafv1BMGvhUCJ

2aruDdtxogjxpuI7/XV5xfl0dLXt6g1J0aNrrQieql4MB1mOPEizrHFiXV4hpRaXYypIfEEuQTMU

jhVB1tzxSfu+SnQU100tfw55rzBd14UkZMElXYuZEwS7SHfWD6LlOSZUWegGpTbqVsn74jvD31Yq

EEc/D8uA6bohwfl2Wzqc4Z4Zop0ztlIT19u7BQ4E4nRB/zHCaylAtZzaCP90s3HiBcf0bQF8dIVI

7n5meBRFQF6SO9KJfN2Zpt416Df7X1tT2WJupmrna0T8XaLbGomF9Or1fERmsjzbgneBkuQ/Lf/3

pyH7nn4+kMGxs3I4Yo1rf9rxeSHnwm/5I4E2qjSJfzeCnl8QUoB4v47/ncxVdMFQk/kLRjjrnDmx

7RX7rFWUfkA+tlMqv3GNIQd+XVbCukd2f57dOPtysdZ8l0gEo2R8E7j7TrP1+xY5gVPvJk18kuDT

mURdC8pOIZbD7sPXw4fdPDbY7QEjwm2ljumt+wcEfkFZGU9/EOL5hz5IQIp4HuJzix58+7Eakd92

qvsh9H+z6TdSo8ucnoxt/4F0RaiMmOxvMmlxvpJJDi1EI10FdEfVg+ZZXQ17v7Aa+39TgMc9XbfS

gV1tr81owICCfzEgD93xqPZB2xa3IYPdBHrC/6JJUoDVh13xjNYqGV/qEX66esugnD9q2NJtT392

5+w632FnraA3ctb8q0Qp++qfumE0dtaAq+rmrKj2zRrYgmfecjfxu4XZjZf7lfXZEOlkXmdROcKB

kdfYC1IeDkppPhlC5FP7DsD5RRN8mapGwuAk2he4BLqcC5WJBHjSnhN++QhOHomM6cfigdGxi0/7

9YK6RSOo+wRrpv9L6QVC9OiYBHyzgFN7v3t/56Mv9DFCX45LTcOHzTpLoAQDvPu4Nad/QMyjABMF

Hi1LDsu6gWTiCiIjqIIE+0kZRFYVUm+J6+NKT4VZiax4+UWmrjDfE5DHWSFIOjrK96AV3tF/tvAS

IPGV4l+lhWuV3rcLv7c2MXdtEpmlw7GVqPv7Fel0jCPOe0nLxR87h/uFoCrRQbiiemv1jWeRJF0h

N/zuluxQCkikN7vMfAT7Ia1d398NAQf0mg9hl4wEfHmo+xU6PRD2i4tyYUj7T2umy4yfQd3oKQNm

TfW7hTqQbfY7SvsLCKxUusr7noGFZIW6P+7JVdb3O5/P3vd0+4N6eYnJZzsKfPujh0CViVR6jIlZ

30TXSCNtSPV2MKXCpvUIr0GLrqJV8k1GqpmlfMt8wub7nRnn+f5ueBBdNj/3MIuJdFbRH/V/BG2k

yhKz6kCJa3IL2bxn3Qv7MnyFJLdi3rb0LZFNR4VLDqjytzZJ139iMA1eNqe8kQNUBsr7szzfGJtF

8p2ahylm1nvKXWakOe8sOWGaenJ0elfupVX7dMU7GVXRHgt8uhBlZA/9iTgIszA6IIDfl5Cwdf/Z

qH+fBpCm3QRxCfcpVgV2E8yr1i+R+/Ukpvws6tjxHiGtekcEB8VLjeNTZk2mjN4FIPsS3g8Hfzk5

nri1n3bqg+B2nf+4OJ7bhZ9N3dff7l91KQXe8qpk4qCDSCQ0XU6vOti7QB+WzaJnazP7E0gGcb7Y

JsUFYkePZvsBlJlkRKzxR53qsb7CNN21NJ5ZBov7s7DfGJYpGbJjn905KVRWExbnI6vJuFuFgqAW

Mjj7El2/pDh8hXn/65YD/tHC3gVqwLNL+we/YmZC33MKofF5F688wADJMMfoQg8m6Iw9rajmRLew

f6ggy3ze/ft/g/IIgF8Q6iEhTSqXSIIueCLGpAUA/5qFc5yrslSOAd44M8mgh1Lg3q+SIXzcD38a

v5X/GTiF9kf7n/dK/CG0+7csU5CC8SJXqNVn44z22jZwNZnWE4Hm9of7SRVi+yFHJdNyPu2CQmTe

f4pmvJlmvr8ug9lN3zHXRsJ6FDx342ROtgi+ty/t7u1HOIkphabxsyOZMgdqUsH29PzyEyAhwB+C

lKolAquyN3ZqYvWJvGaXH6/Z2e7k+9yyL+Nm57M2P25xv/2MHlIjC3+jn1S6A/Gl2y+uZiDAkk3k

6Dio9Y1u7RpqsEBJ/Q0E/JJKU2ZS8k47Hj9W9aqe6Iz7+ZYE0RpJDr8j2xazDkk0BA0h66CDldgj

kXqlECYepLJOEPmZ+7rFpm1SlsHSGou4ZCwZnWR4Ka3keqvSDzOPUKpLfJxqy2Pt/8ZLDxONGnTZ

H8uFrw38OeaBSglIBeLoC+CnCh6/LWJ7CMpEfM0Bpnz70k/1+3+wRAMCa2oHyAi3coFTlnLeIeeg

fhPpIU9kdsz33TrZ5COrAkY5792Nnozx+5lP+3mcA9uWPTE/VXzqi3b/57E7UD/ieVZRDhN5OLGl

fM2Hi/W7hRkOVr6CM0WyeiY8cm/WkR9Gh1s0wwpIIYuZ3O6xGnxhfGXK0Xw7UZ8QXYB/Tn8P+1A3

CPcHLwnoO5qLl9bniROdra21BwNLXUWgc9eVzX/9UnnZ2iLZnoqgCsVJ8ZAIPzDei47YfWRluAW+

I4KUmaoI+8cwH4AfHqidiZ1Z8VmJdbcjSowOJMwh3rEOOEtENWj7Jo6A18mM1sdLBvEh2Q/gg6Bq

WZqb8E9ArkjHrRj7lSwE6N9qFs31IaA355vu9WKXDpWXwrob7YMfBQL7dE/1sYDHagX0cfl093nB

9iDcfBiwnGsPkIVy+4x5DrBxsfs7G6B2UhpyTb7xw/umVpJ+BEgY/Zx33/ximfs4ICF7P+KgerJU

Mg77sV31SDi7kp7M6MM1imUV56gQ9bptXQ2/vpn70EashXVOiUioEMDK14xIuLZoMNg/e8kz/fGM

ixaJqIGHMnzS0/1LIZav/fHZdHtEmWoxtZa3hWQNuj8fTuhTgud6zwUidPuhpRCJy4X7tGkQNOgx

Z9Pe1iGJYTr7H2lq4g9Ks+lmozhi3SILzTKNsmsTDvtOXXzLSMLm+5BpCN7+JXghpTY/YrdriaAt

TUqr9YUxfzjpHpC7iS0JIO2ggXQ5/K+BSL6+hWsEo/UQ8If7Ae1mdAg2Sf9/YjC+e3fHvGoDD0jK

+1ZNUhj23VKhebMfPEX7ef0NXTmuKQ6Mf3HaBysp1quBB3RADr7BplAppreBiGRh/YlHCLMwB4eA

VJeMsPe62ajyksyQOI4Itx7K5ugxlJxktxkvgaqs64Hn8nQq7T2gDp1HhTmBDhPnaWe1Y27e3iD7

kN4PB/EfOTK4l58iqIPg2IVJuBAt9hqje3SW9U8FoF1r3t3etyOKjDgxpiEaOcutu94NDvLNO3Sr

Spw7Buq+2GLFBWIhzmb7AdGZdNas8fv1lbGvOoWJOmYwoZILijmLqhgkoxXif3HRbSX2a1NAaiP8

w9JNM1NkD0IaqhJSv6SmfIV5OJ6WA/5kwucFasBm2IUH1tOdAFBAPN8N7eBmt6IAeU9xwHZN8lYA

R7a4s4C36KTqIk2JGcJ40Srys4BfFgiM1xYPGg9FEKBKty27OsBAjLOOTw7ynHFFBRn0wAF8dEX7

OMDa9Yk1KUSlkVAOV4Jzs4zdw8yc+ytK2DAu1XyZnWJO/2FqDgR89CO2A+xEshqHmRnC08nneREH

p5alZPG62l03wfl0DpHV6KjN2cHWeiPrIji6cahIibSHb+ppwm5CNTRAsooCPDC32hJSC+hPH993

VkV5OCR8fHxPSZvBXmEII1KLZMffg7I5i7zFLDCsQC0JZcEhWfuxt0jLnKtnsjBipr4QSQkKw9gP

nG6BUd8UPcB0aew+7kraS/Vlwcd6txKboEQ6F8tiML7kDt3Rw/tqOvVB/0EjsU17clcpDua+YmJn

xqt3o2KN3xakvg7Ju160Nt3hw4FR/Mf5dHR5MBVtLrd0sWK6fOxvUeM0rY1GWwGzM0WSoMo6v2fu

VdKyqol/QvfLv3Q4akERcb9hSNG4EPbN9UH/JCre9US7QbuFloD7GTz0n6ereEVW5Iq3ScXdBJ9U

uLcGTYBWQo7MXq46doJHQgEwXXvATkfCfKB6XU+b3Tz7nvGRo/W6+5LaDrveLwHofMWM1mlEIJKK

BHk9zfXfxuzaEouF8mJJP3Z0ZzD7wYyFc8aDoHQ9kiGFg5iWrPXKjfeOAS18+5YuJq2Ja2Z0lipR

GoVJm+DNWfFCIfk2nny2Msn3IcGcoQ27Nc48IDOi3ehWD9Z6Nk9tpf8QNzo7/N2xz1WMCBdtO+1m

U1L79Q8T5wqM6dlySVQOfL7Y0fc7FeChjkigyuC30gSyhw0v4oSmx7qdZGJbI6V2EFfSgbb7AWEF

wjqQ3WW6EIn7ztrLxHpDdBQhfJzXt+7mMTFBkXExH2qNy0A1XrgQTXQSwmeXl8u//QtixcIOgvG4

koXRgtYjila+vsyF4/HLpvnyCxNnQXbxvrHKdQ86BAkEJFSOL8m6Ibgt+y5Otz+Hf6Rn/TdJvyPd

s0D7Ycch/ZhfQaAyZ7B2gQ3ehUAOC/a0vNng5EEiRwoEeY5A+xU61t0iaqoeTQTKwoKMjO3TFRcT

yzb79WVfcnN/IASFOlbMII2g2ioD57rLuKUzD4qSATYmkmerLfe68ZzC+2QEgddBE7Rmx0B0knze

BUAhawQRVMswgjJAN2RyLCF8Wf3NdN2VboOMvt7bpuA7UBrrT/tiZ8akJVP5pvtVuqh+w2rBVN/j

QDqoDpgQrWH7SCRVrerLhbq1BOaWs7o4R2F2+1F2cReMefvFjQ+0TwTH+1vqpkIQEPvAP/bYa2VT

6qZv9EtZDqT79ZVOrzqoiaCK7r6RjRFP8RDAc/sKTqC0Xdi76PTp20owOMuuSnLePUbYjYrxBy7q

jTtNjpFWjVbxJTymCFMq7vUVgpVT9XkAoLKXCSlOdDUQoIUypvuvPPvyZYEZM2Ry6Ka6EMaCBl7A

NCFVIwDCjaPbIRLKZJn5Xfv1ZxMsJYv5DvspzPWxamptVN/Cx+pif4zdOJn70ncyqCHdxQ892oEf

TabL8UvJ++1tPzoTOCEEe3ninASjsRlYwAsNKt0+tsKBI/k/4kCyIzdZOEA/OCwQyabJp5Iec5Wm

P3TfcyRqzVKAP3hWRImVqir7uP0qGI5QRsr7YuLbIaiuOhCY7L+b4gSDFvuNYnRq9GacThBAhSG3

7+JrmILigOXEQUXtgQUujLGBpC4YElN0LLb8QDe3DhCcA2dCcok6Of3MJh4KnfulsE+SIas9NDtn

aHsNjW0frP+FjqGowGrdW3zBMYWu7KOxALuXaw6O+XEQR0DjXnT20fuCqT+sr6a5lfFXVOLYVWqY

YrePti8JRhCHmZdRykppVVPWOUJS6YlNhd+uSUj2ba8P+xeuoPo0nUn03pBW2Cb8pSO/EEDIV7sh

s4NRRSBR63uUOg7I/3Um8cl8wTOCUvlB+SNSLIn7pIU3+zEUMDvjEk3NdN2DolTL6AamDrQ71RZf

vwF4IZ0Wpm0BCMCvhUaxwxA6P3a7EME/5CGmpUZmUmnW5yqjZDiXFSzo+wq1Yp9S/z3NqGfGcnt0

t6xv5I4EWQ8B01WYEBpm+3m0OwKCbZIWr7Z8pumWB6C7E7dGeD14+7tIEnSxnWwqi4Leu7xop5Je

GbB4SyiqOJql3ox5X+4C3SDJxvEQe2aU5C+sEhQA5nQ42ro6JrcOpk5NW4GagWZdsvsZPMKBsJm3

izBNchPpEE/RsX/roKadOMkVgwb7+yYEJPeOoqZSw5tmZqzivvQ26MkQUxIHlW0zGYPikHlSQdOL

8tG0y4WvFa4HYTjclg26NzyUjd1VxX95nbsVsUc+9hN+WWK3doLSW5ZxwA070ZZ/zGt//xUjFmEE

fPbaN4Xxn5LXfHJVl0sQOZy19btJBwQwS2H06Xz7lsYJt4mgqmRfKmREhUUAwNlLDmshgeoKRZ6r

IoIhX/1ABOeCBQpLqA3yRdgE8W1GT4fK5iEHOhrjCXJN6LoIF2357bFTt/v1QRM7soytoAZ/VIy6

voV09/kNn0g4SNlmPxV5YgShxX8C0CGP1o10YlvfnA4hOtJTlvv0YYuqOpDdg7ohifvO2g7Enx10

bhB8Tde3TuYRvEEvcRarcY24SGohjqYOpUG/rCC6d50FMGLFqyH3Dk6SYvKCOyPSqr6+zGLjDsum

+fIfE9/fdoy+sUR1DzoEJmUk345XSA4hPqZ5pkhXS3zLczs5T79hhWKzQPuMQhCMmCRnoNNnjqqB

Dd5iQIwL9rS82eDUQSJ1CgQ4jkD7FaBE3UFqdnK3BE+FFxB5pHQZ+5INgTojCwVWc38glYXNycyi

kqCCKustusu4nDOXipIBNiaSgqstIrrxr8L7ZATWq0H/tLEshXSSOnVrqCHAT6oA3VXCyJ8f8nIs

IfFZSKB0oARuAIyNU9um4BpQGutP+2JnxsglU96m+xG6qH7DRh9UI+MJ22IOmAeOR/uMOhOoECYE

SY0PGrGzujh8YUj7UeJxFxN5+wSND7StBMf7W+qmQhAQ+8Dq9thiZVPqpvwBS4wO2/uolU4fyy2J

owkOZRBf7N1TU2vo+wpO2LRE2Luy9OlXSjAOy65KZt49RtiNivEHLuqNgU2OW1aNVvElsKZTU/ru

9RWCdWGVeRUpy4x/6irHfQgkqDKm+5w8+/JlTRkzZHLoeboQxoIGXsA0IVUjAMKNozohEotkmfld

+/VnuCwli/kO+/jeBLEaSGFIg4t0dG/tcd04mfthdzKoId3FDz3agapNpsvxS8n77W0/OhM4IQQ5

eeKvBKOxGVjAC5Eq3T4q22ckFwDixZV/+/ZAZHgj74d1Tq8L8YK1oL4FdEhKjd1Vfk4LnJX157p4

0bFuHV8f5o27QG23L17J8a5UjBlTpqbBOU9Z+wS4+efxVt1+yDuKfFICH6fxl+CAXsSeE+35Bdeh

HxpjeJXii/IJZ2FrJlKMppwqZ6oe+3+KDnUmzP98+2aLjbN8U4dIIfLUF9WqE7aN9qEThZ+MBMcE

ChYLnDjnEQfZePQEE58wdIL7qF/0Ovsmrp5JPvpBWdabYulyp5I992H9Gcw6eZcOuBr1EDhd49q3

0a4PY9Z8DhK4ecWqu61inCRdE2IW0cFuHVNyGRbYTsNoBr/qdD84xXz0ZxLm5Gd7tnMZabbRldEP

1+xmx7NGTSztmVEgEN4B+6j7vrbteAk+YV+SX40zSCHph8YE6Xl6UnHgi2QWgTGn0zsKq3o9v4XY

FlLkZA71ag41QLoNkkGBkXfX1qjcVbG2JKpNOmQ6Fj/u8seVn1nLQnSMFSNpJLN/dIo/zf8O+0dN

QECqgbZtnLvFfja6YqTe+yFmt/sTEzhdQedT8kuaOymqi78epvdeHpwgFslknnTveaVV+y0KnpJ0

8Mdn640FjDgk4hN83qMBUrH2Zls+yX/xvG9nT15mYcBBa415xhYpqkj7/TtnguNz+2ucEMz5ZoMh

+5wqrE729DygW6rdPsNQX/EOIMlXBJj7+0DFMFT8JBBSgO8elqTBjfTDPHwQU6o6g7GBSr7B7vR0

Tol1pzrcviPCn7fZMppxPp37Bar/uO7olX95mC1xsUeykgq814Wldimqd05xwfU7dLEhzGt/FvYj

BKMN8e+nPQVjP6Wqiw2JYmhedvZ35NtTjoUSJV2Wq2h25/VefPXZ6MotCpBq3mKZ+y+r6kghbzDf

I/9A/C4EOiFtt0WVigO+QtNjedbDU2dRRtpN+XQG567DySGdEAC6+XznRYE7nkioKabMoBj/o5ZT

/br/ITvRRYxKlkeMuof2e6zxOB/+237ljcC4oPugekR2Lar0OvTC3nKFkCZ5qCDnYqMTD64/1KAR

i9bmgfaQxjW1F75T8g6XTBYOeWXiO9r7hVfSZEEyCxrJ/d37hTBEwDpnO3cyScdF9Rj7f3kEwUQR

+6CgqvKKLp9+OvWStVaHceINjYfZmTFOo/XneQr37vE4dgszfGprSI4GW/GmdXROC5RBv8ugSTLF

F2Q/FXRJu4vD8YC8OoDRaZmO9iP7BPU6IQV0VHdxRHT7ZIvZCFIjV3qs3yKMey37oDen63zqdNIa

95FRotn7Pd+z5BUgOmUGySE+7FMpkDphSwQ4/BFd0jgfvzjh5Ho41xAfi5mN4nwlVZ23U4/jg/E5

EzQXVjaeTjCiZK/yTTaL4qTKsJF+t6i76PStyBq+eUTD/dem9cG+6zYJMaQDAJC42Ug3y8A2NsFU

I/fHOoWmmaZPvgXK63TiplIap1JXiRDxWzBOlDuwXfsZVVGZ6O58plHpDl1BB1aAVN//sEk4B/Uh

U0mg/eirN4yORvv1BP2loFe72WYwHsi8Xh8I5xhORdjmeXUW4Bl/+3p/IftmXfE4SEuY+509ajK4

I5+h9QDBpqYTjCB7/lcBarIsjhUjBN5itYNA6EvVoh7y9oKQdFI0ePx+zLRrtr8Xng5HUnJdA0JW

ytitPPRPLzsNeV1qDroOqB++AzY3opEDAIzJOjgmOOKspLRUQUnH2IV/uKc47Ys0CFJKqgOsBMaK

CxA46t9WZB6Lgfv1QcIvbggFpvs5S/VOgKxt32edoKBAptIQLQ/7wqI86ULLoKF1g05KTUj/OKF8

+9FfcUATuqYEVXJFswQFH2pYwDOkqjSKrhJnlPw/VoU+I9m6kN3DDk9ifLot6kl0ZzP3y69JIvaC

JnrvsaamR4nJxwQYhE0DHwh/8a9Vuk5JCHRf+3847CX9C8PaXbg4bx/XTi6Euv+g3eRVEzohZH3j

R/fbpvHx8vGoWyOlEGj/LaB1U6JJ3Bihcrt5wWce1cc72bFGv7P1RuITNBfCmma19EO2rm0xdCHL

aF4lESEhPXz7nW2/XZScyBcfI2X0MlM5ZEETtBmopYBxerRSYbh40Xb7YubgIzVWB7HjUlNi+5Ko

XRpmtWTii2bq4qbWKQkyIOWD5OrM2cf237c79AObCbJ/uPHJnzY5wJxeN8Fp9X/T6gSFlqXRuHkR

Uji4RIAPE0drMzabwPstusCABNtVA5/A8fFbIrQ9kpDm2k23T6PRRp+OOv0VvhCt+wfBaftGRSrt

l/K36uBEqNn9r4jgaOBJi7Hx+7SBSmd4Vfs3s6aYeodF2MshXaw3s/s64kaohbzpQH8//VDg++fL

wWn73DPgUeZkB1sLpJ/ncro+pILV79Jzs4Da9guCMj3q3744EIsfaMWWPhkC4qh2TWdEU3T7JP8s

5D+NqBd7UlLvLLyFsjFAq9+DHw5oUmeo6Db76oJrgwremOcpt01KSDcwIcygYfU9D9px9st/04vL

E+c2IxOHSt4PdOAaMi58cirDVQMwsqAIrJntZo3BLbJKcugCZsn/a/WzsATelTGxMP+8cXS0IYwG

s4B/7vH3+wBAFd8HAEyj2WKMr9OqO9r7qHpUc106BjqYeQQ6GLoAURATOHxEZlIwv5+3xTgA0BD+

gY1k9b6XEqjxF/ymjheM3WieESmyu3V/dcrMw/trqmnofI7523XSyX866+BQ3Szpr7Y7Ov/7bk5Z

t0gCsJxrZ8s6C/XmzYX1Ic38OWrio/nU2eC3TWZNv45Iug6x76BCnvBTjfL1kkFN/abxECbDM6pv

Q9EUpkhEjl15OOTCq0HLvjpFBJY+I7dWTQqL+6Y79NnVZ/jxSNstOspI+1uFwQq8CClbIWKgYef/

fAQpdF+wUUSo8QC0/2iQcpdKRPuNi+jS9RBtPATxfFnevrEEtrzJ6iM7u8emH4F5oUfFBXR0msJp

xzoUu4yCjnY3OTz7TUHdiiMAXxd/OOeuezP7Gt/d1/vGeZn/mzCt+044dLZvqLzIqmZE1uav2Ki7

QB8wW+tWI7T9nebWORFG9nE87jTLza/W1h5XSnHBeSUDpk+LuXyokiNhNcV8rtrLFg4VqqAbUuCF

jDj71tf70QQaDUVR7jk4diEy99IOwID702cAyz9TaBD9+RSxll37qGdZyCWLU6b7+BoEMDuYYXyV

BXR062Q/3Xkf+8xoMvUQa5VLjW+BZl18DnydSPvyMI06E0m1BD+dsQgEV/vq6hB+fxD7Eo322Pwu

QPV/pd7uFYU7YiNvGnJHrYmjQDgUECSioFOB3TP7MkjYtUTYu+gBT1cibQ5eDSM53j1GW41zdpEu

6qWZb47agJvBdiEuHg6KKBAj/DdHdZV5FcAWkH9xsKB9tyCFMqb7nNr78mWBQJ5kHzN5ySHm3wZe

wEYh6NUV46Deo1sP1ctXu2IRgQrSlYns39eA3g4hsRrAn6hSI9q6PIDiiqL2MMph+9g9hXJjImHT

HkimOueKesVItjTXCWfd13nYLS5ERmay3wKw5zjHsoJkKfK3auIfEwaVOL786wpJoH/x8e0tpk2e

5AKSfOAOVMPHrjDLo/wtpqwhfqZBGfIXdkktYVY6Xyb/wxdci4oCiH9RGnt4yQKKZYcWdnh5SIlN

hzC2aW8Z2wt86XIxdyYLUnTxoRGBvk4adEc21SY842+eou9kXZ7tgFbR+3kBYtb57mFktIsfvsHx

Gkqn13kWxRW+FnkiykF3IIu03yCKebM2msj9irFbTz0LfA44TVuR4x9SdJBhe7e4LoFp3xN6pzOk

m1/7rebB5MXcina04jiQvw8vn0QOjt2VcVT/63+lgF5bA0AKLovRiiF1CXXG8fuZCD3cfO7mB3RV

dEG4Jdax1neCXTZvUTN8RQ+bc/QhpYDc1vuFEqz1hTG76nk8SgB2+7vxEoD7Nz6flBJkoI0j4HHk

WSGVYpgOwDBICsv7hwjuE+cweAhd+2jCn2enPjYAR2J2tw+B+XT7n4zYcY2+hRfaXU8ALF9Xwuxr

q4oC4qBHPUH7BKhrEN7Rx8gLL3zWgMojlGmwi4t0y99JoNoVvnl/003L/4E2I1kpnghL0eIaLsaM

jCrcR3tvq6DWrFaiRlDBFwSmpmhyRZ3V32a25/WJYs1J4q4B9Nn4UtYGT4B/7vFL+1DdFd+nAogt

2ah5r7ZWGuP79XpB/Lc6yTp8QP/7GHwTLXmNYstXhZ37ET09lfH/6XllObNrtrhrEkDxF/ymSRe4

JmieESk+LXV/nsqXx/ugqjbo8dc721nS7nSCcuC/ETrYYYBGBWPCzq3baskXCBT7BAkEq2dpJIX1

Ic38OT/iTzvU2eC3O2ZNv7hIfMuxAKC/nv7nv/L1kmcw+zjxFhG+tPXWfUDAUvlmCFtJuKbxsQDd

AftRtt0+NgCW++te+/K+diYLtr75GHNOISxJ4mpt0RCRPUzq+5h0ZTKo8TgRgSE4+TGguri0hXnZ

aE7xR9F81+1BLLXNwnMEzX9WCEcOMJI6DyqxppiSggQa9Xzv3dcmtSMiEBnM6iE4OpYhBLqFV6cE

cQ9zAXkyWUW6BPeF2DeVumpK+QSNFQYyJqi6bTBtEO23CVXbAG0OEDKeSZ6I4zCATelZdFY+sA9t

LQTb+5KgITHLpvu0vo1iCQT59RCqAQ8Tumn79QTir6CoiTTTZmppFZ/pnRCWGqa1yZUFdHSH7T/d

zFEFFvGuI2nejUb2cbB8F7rqparbe8gfP8GmJbC6T11K7vUVZ5Xe9XkAa7Ke1RGZdCkQzZAE8fsV

hTti30oacsu7u/HxEOZBBsvAgCFfSgDmjd7bprGLwzur1vv1Z1mnFIv5DvspS/WxaoBt90GdJuqo

fwYQLTX7yREDLReMN0dhZbWHs6bLfEu6+/Jt6tkTjCHFjQ/iLQTb+5LqjkLNOPsSP67YQJX59RDj

9EH/kID79YPirzpiiaBOH75XcRHe8SHiPvsTuthWTdi7M/StVxZtOMuuZ2beexQAoMIQ//1YJl3L

EJwWkeTKhftBnrU+FI72Z9YVDp3xgqwK+ZvyRLMAwBD7yYeLpHruv9M2d+oV3TDA4pW0IE27BN0E

BJ4lCBKLFwnRDw1vsgVkuts7KrVTkizc8rrNLA87PkGQ9AVzxozJTTTi3eM0/IBU4w4QVCL7SQ5i

AAL5A/YZijgFHx9xD8kCIZW47uvbv27+qAN8Qcrefl3TWz6MDYemfxBxsUTrMRk8W0HBu/whJkY+

4CLgZlKig/ZfNLvxJpW+hbjpJMOryCP9abJSybVCmuug6jpbgpFHs4llmeuKfGDrh6XeQKbKNghC

wYCxvoo96HyF+3ogAOJi910jlGKQTfv7i4pAQKCvKvvRBIvDsv3LhSS+2KZ/LaXfO6N0yzCb9HS3

RnsfRAc6nHsfbb/rTbLuIYuqhWK7qAOLEgCgyt2AXaBVs62MSdvXycsBkg07QVRXd2EEReMhkL/e

ZMfTkIV+v1svV1YakaGHoZZTW3Ti78vCE7eA0zk5wl7WpvsgumHI8g5ql0J2CIx5bf0G5g77Il2g

+3zxDYkP/KQLOBAFqg/yHzJ+XubIbaXMBGsEtEHLUp1dana/2klhkqB2igrV9IdTe+acGaG6CN2D

FYJZA4UIan9Hpkv7AqdKoIdzcapT2hqlgIt4W3sESBVA9Ur/tEWZi0BkB38/wfKKMPsSzIVJxoM6

IeClppXXEnN8f4VfcVsefPtAlg4fZN0Pv6dVBH/JYvECtNn88WshRDayRTAzofcQwaUiDYkgTDwg

CjHdslYPgciWNuIV5xaJb2ffo4UL6Rkg3m2suPHYSbX7drdFiQ6LOpl/Ig66voXRtVuih6hdAMFA

fxOjmbK/Cuy5nqa4leKL5oW7N1bsVUFJi0B5QHmYBGuDSVDQEP5Nv2RiPd/SOhYGIEC3sb8B6uwX

bRKZCGrBBNj7+77K0aFKj+s4/QTAU6v7DQcgdEH/clPJIN37zW1S4jpH52syS9s4SU64dl3K4q84

Gvu1GvQXDUpwyaagu4XpR/u/QMBVvFMkyCGFoJCJMkgEsGTAqpTnqPGDsWEXOHkSQTv79otF5vUQ

4DzFf3zSyr6xBJm8fNuCO96sELEaSHVHZd508ppBNtk6GLuQWTh5NwMz+4GXQIojAOKg8bWLrqsD

+zvf3TP7xnyZSVAwrftOOHTjb+q0yKoegU9trzpiu0AeMKTrlmfA/bjmr46wNPa+A+7IzIWv1tZ7

yIdxH3klsKZdi7l8qJJKYWEEfK7ayxYOjaoXG1LgzRNJ+9bT+9EEGg0+UU4LpnYQMt8G8V+A+z5n

7/9xU2gQsYsCsZld+/VnLsgli1Om+/jeBDA7mGF8lQV08utkP90OmPvMNzL1EGuV4401Ux9dpg7J

S/H78jDkOp6O+wQ/neItBFf76uohfroQ+xKN9tj8LkD1f6Xe7hWFO4Ujbxpyy+mJowk4FBAkoqBT

TWsK+xNIOlaz2Lvo9E93FjAOXg1nad49RluNsHaRLuqlmW+O2oCbwXYhLh4OiighI/w3R2GVeRUp

FpB/cbCgfYskOjJ/+69H+/JlgRmelE7oeckhR0EGXsBGIV9nAMKN3tm6EteKD0RnEoDrAqA+Scgx

sXQgN3alsPvyg00NPpTCPv18R+9JaIKJDjnyTuNEgR4/voViBAX1EDuODsiMOueQ4sUi1nm6s+aQ

RvYfkTNIpn8DAr/BpaYyBKbdlehwQhwXEARIeXRjra5TZHlnP91zbeJtnAT1CH+fdB+DT9pKkJIt

EwhpLyPvDaTkBfIP1TuqH7e/kBPxDvulWBXdMXjrhaUAtKc4gh+A/NMjupT55xN5lhomeBi0BWTH

32E33aUOIU63ZrY5Z25qUQRGwiKUKvJdgOAFpv8gE/IdJpRddJi+vuKlmfHNxj9GOU4uJTg3CA9O

9jTm9pd++xnVrOc72xFLXnQvUxRAIkIfEMDiOKqFIvemLeYxE/swtWNraCG+qpRSI+u/nrK1oKIQ

lSGquy1ARHpdEywRZDBakxqWrC6ocoswkUHjC9Zb6fWNqE6o4hKHla6rtbi/hfUjjFHWGv8VgqII

5P1PI3E+fPv7toACtA5yCN9V+/UB95BPELeAOXrCL7WkwNbGNyRkEipEgUi+9i7WsDaxv2qxOhMO

BJld9RMPBvGxRvvq6G+ALDwCAF+MgtZB54tkSEpli+ZNt4eq+3kEIcDnwK4fpM2MG+AQXZsSLg5d

I5QQha9/SDhOGXZf9znqXpLqlrI2sN3TarCCPh/Y1Vu6GbJ7RNJWi005qkamBX8OUguBBXQh29FE

dcb3+0A5ixIAJqJInnnrRNtNRbPSqHas+9zoh9omMoAAbetL50GOU/LRJP9ier6kB/st3uI7bo0f

fBFkbR5k+WKMm7HxZdnxoEAEW2uD+3pG78H7f9ZngYvyIe24oLV5BHmkeBmFSSSS13xmsnLjEDlm

lcWJpqtTmZr7GTO1UaoTrS71+QT79b6F1msjvqpmUotIf424jASgBIzVKqLRPxVFhYMGGKYA0Tgy

jHyzlk/TenE9IXys+5id0wdxmsDIfLeAOyPtgDCBBfJGyLEv8Wim/yC6TZcVAhIQ6r6gdl3p8Xx0

WYkaCfRfv4oqtU9Gwfx82/v8Eo3g+0FtRw+ksjLrfw8aNdz73YqAskheJeeLEBevn1KYBMr9f5Fv

3TwIOoWDCOcSV7c2vJESsP1SRsEeEDf7TZ+3IYPnZvF3bwc8RCygxU8IMOq+7NGeWYWzrADi+3U4

+/KNbzTfMD8aGBbxf0DLbUYD0RAHvoYX+3l0GDiFR0leTf86wFYjR0QR0QW1hQRooQR/aTZrxsxq

T/WM++QD9ed21mbjKAAB8sqsDvx/qFaSsI7MD4Cl4O5yMvL7N/tIaCGOv4U4I7q8yq1Iavs4FyHx

vzo7OoI1eCJdx+cQptjYRXr0dMj/hSSNajosg1NiECgaYRoWEqgZkmfVHvZypvwOEoAh+xGmEPuq

RHnXpnXx+1++gOh8IyRI9ZvBfxCduA4D8Or05FXdy1tnld6ofADdCkkHX/109sx58k+AXZfaYW2g

Vb9rE/Gm1vlddq5+s9it6AEtaTtxBl2sDvx/9bGusL+gvKRHm0kGOnwmeTBqGRJU3/en6oVJcizL

8gXN6bMjsEWslbgkPhAg6mcqSoCOgftAVVG2PPGYEPKLdl0joJ+Aupf/ePcTOqghUyAHHnNeN1mO

gPv1lcG2/7u7o0AO5hb0tnNO+wNOy1tIeWHxEmpH8ZJ/EPuHyqYOSCKY+woNaui4IyQiqFDgpqY4

SJ2Hzlf0aj4sjhVBlzVltRXAy8sOP9rYdlABdERGUvy0RW0XC43NnvGmtx5v60IfcbF5bqsQXbcq

8fWNCwQa9UhlQLJ1mrSqdJ0hoIUKDvulM/t0lTvcMpTuVTh8ELIiTsuWrKY+awlHQMoFWyPMx7O7

+zSV4PvmOsE/akk4iY60Nt0jZI82Z+6tDt6Koq4wpQ/76hUNKGNLnteZR39Xr57AApkasat3Vt0z

akW3URnaML82FkCRug2WPkAhIWF1hQfyNt3bNkBmt3S4OqWAap8STYkE0lX7jLjlAkm0RdbF9W3b

tdHbsZ3N9ml4MGR3NNpQDRrdDV3dc11o8Xx8OF/H6OjHkIj4VhU9XlOMxh5rX4sfLZw9f0jbQX+L

9gSdOnxA6iH7drXfnhAxNBqFsq/pRd5lR1M/zEKtQHJ6NVcmSUm6+fv17rzfSh60w7JTgDVTGrZo

JSBSkN5mxyxAytN6xe/djRmUYWu+MG8KH5Q7M0TMDnumFkic65vAjpcIZ1Kj0acjULK2izEAsbNP

YqADCE9NNPWKxgn0VkRVexfqjcH753T99QR/A9OqH8p1+1c9OhrYZ+OjwjRXC3dt1g4QEvI5qMwH

tce1y9GlRnv2EfugpIUOrvfLbzhSGaoHCzoT10Rkhw51NEnGSPuc2k0GZehTGEmxOTrxkoqz+2sS

DYmm2okQBHH5ShgYL4v6kdKEb4HyFY94uGTlhBpvd7WE0ovypxZfM+1Fp/n6Kygs64FkQoaQVe3l

aRrjkbma48ryDcSQPvLEK3sF

查看更多内容,请下载客户端

立即下载

喜欢这个歌单的人

相关推荐

【拽姐出街】 | 辣妹必备~♥

byfirstt丶

R&B|Trap 在你的生命里加点颜色

by奇怪少女7

嘻哈榜 最入毒的歌曲

byErka-

控球 节奏 打球时听的歌 # 控卫

by余俊江-

【歐美】Trap/旋律說唱(切歌算我輸)持更

byFsioruniQ

网易云音乐多端下载

iPhone

PC

Android

同步歌单,随时畅听好音乐

音乐开放平台

云村交易所

Amped Studio

X StudioAI歌手

用户认证

音乐交易平台

云推歌

赞赏

服务条款|

隐私政策|

儿童隐私政策|

版权投诉|

投资者关系|

广告合作

|

联系我们

廉正举报

不良信息举报邮箱: 51jubao@service.netease.com

客服热线:95163298

互联网宗教信息服务许可证:浙(2022)0000120

增值电信业务经营许可证:浙B2-20150198

粤B2-20090191-18  工业和信息化部备案管理系统网站

网易公司版权所有©1997-2024杭州乐读科技有限公司运营:浙网文[2021] 1186-054号

浙公网安备 33010802013307号

回到顶部

{if degrade}

手机号登录

注 册

微信登录

QQ登录

微博登录

网易邮箱账号登录

同意

《服务条款》

《隐私政策》

《儿童隐私政策》

{else}

手机号登录

注 册

微信登录

QQ登录

微博登录

网易邮箱账号登录

同意

《服务条款》

《隐私政策》

《儿童隐私政策》

扫码登录

二维码已失效

点击刷新

使用 网易云音乐APP 扫码登录

扫描成功

请在手机上确认登录

选择其他登录模式

{/if}

忘记密码?

短信登录

自动登录

获取验证码

密码登录

自动登录

登 录

<  其他登录方式

没有账号?免费注册  >

自动登录

忘记密码?

登 录

<  其他登录方式

{list suggests as item}

${item|escape}

{/list}

手机号:

密码:

密码不能包含空格

包含字母、数字、符号中至少两种

密码长度为8-20位

下一步

<  返回登录

云音乐将不再支持 腾讯微博 登录方式,请绑定手机号,以免后续无法使用该账号

你的手机号:+ 

为了安全,我们会给你发送短信验证码

验证码:

<  返回登录

云音乐将不再支持 腾讯微博 登录方式,请绑定手机号,以免后续无法使用该账号

你的手机号:+ 

为了安全,我们会给你发送短信验证码

输入要解绑的完整手机号,用于验证您的身份

下一步

<  返回登录

跳过  >

获取验证码

获取验证码

取一个昵称,让大家记住你

完成注册,开启云音乐

取一个昵称,让大家记住你

完成注册,开启云音乐

云音乐将不再支持 腾讯微博 登录方式,设置登录密码,以后可以使用手机号登录

你的手机号:+ 

设置密码后,可以直接用该手机号+密码登录

密码不能包含空格

包含字母、数字、符号中至少两种

密码长度为8-20位

跳过  >

如果你不是机器人输入验证码一定没问题!

账号或密码错误

确 定

取消

+86

{list countries as x}

${x.zh}

+${x.code}

{/list}

由于你在非受信任的设备上登录,需要进行短信验证()

通过短信验证身份

{list data as x}${x.t}{/list}

歌单名:

错误提示

可通过“收藏”将音乐添加到新歌单中

新 建

取 消

评论共0条评论

◆◆

后面还有0条评论,查看更多>

收起

评论 ()

{list beg..end as y}

{var x=xlist[y]}

{if !!x}

${escape(x.user.nickname)}

{if x.user.avatarDetail && x.user.avatarDetail.identityIconUrl}

{/if}

{if x.user.vipRights}

{if x.user.vipRights.redplus && x.user.vipRights.redplus.vipCode === 300 && x.user.vipRights.redplus.rights && x.user.vipRights.redplus.iconUrl}

{elseif x.user.vipRights.associator && x.user.vipRights.associator.rights && x.user.vipRights.redVipLevel}

{if x.user.vipRights.associator.iconUrl}

{elseif x.user.vipRights.redVipLevel == 1}

{if useNewVipIcon}

{else}

{/if}

{elseif x.user.vipRights.redVipLevel == 2}

{if useNewVipIcon}

{else}

{/if}

{elseif x.user.vipRights.redVipLevel == 3}

{if useNewVipIcon}

{else}

{/if}

{elseif x.user.vipRights.redVipLevel == 4}

{if useNewVipIcon}

{else}

{/if}

{elseif x.user.vipRights.redVipLevel == 5}

{if useNewVipIcon}

{else}

{/if}

{elseif x.user.vipRights.redVipLevel == 6}

{if useNewVipIcon}

{else}

{/if}

{elseif x.user.vipRights.redVipLevel == 7}

{if useNewVipIcon}

{else}

{/if}

{/if}

{elseif x.user.vipRights.musicPackage && x.user.vipRights.musicPackage.rights}

{if x.user.vipRights.musicPackage.iconUrl}

{else}

{/if}

{elseif x.user.vipRights.redVipAnnualCount >= 1}

{if useNewVipIcon}

{else}

{/if}

{elseif x.user.vipRights.associator && x.user.vipRights.associator.rights}

{if useNewVipIcon}

{else}

{/if}

{/if}

{/if}

{if !!x.beRepliedUser}

 回复 ${escape(x.beRepliedUser.nickname)}

${getAuthIcon(x.beRepliedUser)}

{if x.beRepliedUser.vipRights}

{if x.beRepliedUser.vipRights.redplus && x.beRepliedUser.vipRights.redplus.vipCode === 300 && x.beRepliedUser.vipRights.redplus.rights && x.beRepliedUser.vipRights.redplus.iconUrl}

{elseif x.beRepliedUser.vipRights.associator && x.beRepliedUser.vipRights.associator.rights}

{if x.beRepliedUser.vipRights.redVipAnnualCount >= 1}

{if useNewVipIcon}

{else}

{/if}

{elseif x.beRepliedUser.vipRights.associator.iconUrl}

{else}

{if useNewVipIcon}

{else}

{/if}

{/if}

{elseif x.beRepliedUser.vipRights.musicPackage && x.beRepliedUser.vipRights.musicPackage.rights}

{if x.beRepliedUser.vipRights.musicPackage.iconUrl}

{else}

{/if}

{/if}

{/if}

{/if}

:${getRichText(escape(x.content),'s-fc7')}

{if !!x.expressionUrl}

{/if}

{if x.beReplied&&x.beReplied.length}

{var replied = x.beReplied[0]}

◆◆

{if (replied && replied.status>=0) && (replied.content || replied.expressionUrl)}

${replied.user.nickname}${getAuthIcon(replied.user)}

{if replied.user.vipRights}

{if replied.user.vipRights.redplus && replied.user.vipRights.redplus.vipCode === 300 && replied.user.vipRights.redplus.rights && replied.user.vipRights.redplus.iconUrl}

{elseif replied.user.vipRights.associator && replied.user.vipRights.associator.rights}

{if replied.user.vipRights.redVipAnnualCount >= 1}

{if useNewVipIcon}

{else}

{/if}

{elseif replied.user.vipRights.associator.iconUrl}

{else}

{if useNewVipIcon}

{else}

{/if}

{/if}

{elseif replied.user.vipRights.musicPackage && replied.user.vipRights.musicPackage.rights}

{if replied.user.vipRights.musicPackage.iconUrl}

{else}

{/if}

{/if}

{/if}

:${getRichText(escape(replied.content),'s-fc7')}

{if !!replied.expressionUrl}

{/if}

{else}

该评论已删除

{/if}

{/if}

${timeformat(x.time)}

{if x.topCommentId}音乐人置顶{/if}

{if canTop()&&GUser&&GUser.userId&&(GUser.userId==x.user.userId)}

{if x.topCommentId}解除置顶{else}置顶评论{/if}|

{/if}

{if GUser&&GUser.userId&&(GUser.userId==x.user.userId||GUser.userId==resUserId)}

删除|

{else}

删除|

{/if}

{if GAllowRejectComment}

{if hot||!x.isRemoveHotComment}

移除精彩评论|

{else}

已移除精彩评论|

{/if}

{/if}

{if !x.topCommentId}{if x.likedCount} (${getPlayCount(x.likedCount)}){/if}

|{/if}

回复

{/if}

{/list}

{list beg..end as y}

{var x=xlist[y]}

${escape(x.user.nickname)}

{if x.user.avatarDetail && x.user.avatarDetail.identityIconUrl}

{/if}

{if x.user.vipRights}

{if x.user.vipRights.redplus && x.user.vipRights.redplus.vipCode === 300 && x.user.vipRights.redplus.rights && x.user.vipRights.redplus.iconUrl}

{elseif x.user.vipRights.associator && x.user.vipRights.associator.rights}

{if x.user.vipRights.associator.iconUrl}

{elseif x.user.vipRights.redVipLevel == 1}

{elseif x.user.vipRights.redVipLevel == 2}

{elseif x.user.vipRights.redVipLevel == 3}

{elseif x.user.vipRights.redVipLevel == 4}

{elseif x.user.vipRights.redVipLevel == 5}

{elseif x.user.vipRights.redVipLevel == 6}

{elseif x.user.vipRights.redVipLevel == 7}

{/if}

{elseif x.user.vipRights.musicPackage && x.user.vipRights.musicPackage.rights}

{if x.user.vipRights.musicPackage.iconUrl}

{else}

{/if}

{/if}

{/if}

{if !!x.beRepliedUser}

 回复 ${escape(x.beRepliedUser.nickname)}

${getAuthIcon(x.beRepliedUser)}

{if x.beRepliedUser.vipRights}

{if x.beRepliedUser.vipRights.redplus && x.beRepliedUser.vipRights.redplus.vipCode === 300 && x.beRepliedUser.vipRights.redplus.rights && x.beRepliedUser.vipRights.redplus.iconUrl}

{elseif x.beRepliedUser.vipRights.associator && x.beRepliedUser.vipRights.associator.rights}

{if x.beRepliedUser.vipRights.redVipAnnualCount >= 1}

{elseif x.beRepliedUser.vipRights.associator.iconUrl}

{else}

{/if}

{elseif x.beRepliedUser.vipRights.musicPackage && x.beRepliedUser.vipRights.musicPackage.rights}

{if x.beRepliedUser.vipRights.musicPackage.iconUrl}

{else}

{/if}

{/if}

{/if}

{/if}

:${getRichText(escape(x.content),'s-fc7')}

{if !!x.expressionUrl}

{/if}

{if x.beReplied&&x.beReplied.length}

{var replied = x.beReplied[0]}

◆◆

{if replied&&replied.content}

${replied.user.nickname}${getAuthIcon(replied.user)}

{if replied.user.vipRights}

{if replied.user.vipRights.redplus && replied.user.vipRights.redplus.vipCode === 300 && replied.user.vipRights.redplus.rights && replied.user.vipRights.redplus.iconUrl}

{elseif replied.user.vipRights.associator && replied.user.vipRights.associator.rights}

{if replied.user.vipRights.redVipAnnualCount >= 1}

{elseif replied.user.vipRights.associator.iconUrl}

{else}

{/if}

{elseif replied.user.vipRights.musicPackage && replied.user.vipRights.musicPackage.rights}

{if replied.user.vipRights.musicPackage.iconUrl}

{else}

{/if}

{/if}

{/if}

:${getRichText(escape(replied.content),'s-fc7')}

{else}

该评论已删除

{/if}

{/if}

${timeformat(x.time)}

{if GUser&&GUser.userId&&(GUser.userId==x.user.userId||GUser.userId==resUserId)}

删除|

{else}

删除|

{/if}

{if x.likedCount} (${getPlayCount(x.likedCount)}){/if}

|

回复

{/list}

评论

110/120

◆◆

◆◆

回复

110/120

回复

110/120

发送110/120

评论

110/120

发送

110/120

新歌单

加载中...

{list beg..end as y}

{var x=xlist[y]}

{if x.highQuality}{/if}

${escape(cutStr(x.name,40))}

${x.trackCount}首

{if x.trackCount+size>10000}歌单已满{/if}

{/list}

说点什么

140

转发

取消

  歌曲同步完成

查看我的音乐

{if suggests.length == 0}

轻敲空格完成输入

{else}

选择最近@的人或直接输入

{/if}

{list suggests as suggest}

${suggest.nickname}

{/list}

{if receiver}

${receiver.nickname}×

{/if}

选择或输入好友昵称

{list users as user}

${user.nickname}

{/list}

{list users as user}

${user.nickname}

{/list}

分享给大家

私信分享

最多选择10位好友

140/140

分享

取消

同时分享到:

{macro listArtists(artists)}

{list artists as art}

${art.name|mark} 

{/list}

{/macro}

搜“${keyword|cutStr}” 相关用户 >

{list result.order as index}

{var lst=result[index]}

{if !!lst&&!!lst.length}

{if index=="songs"}

单曲

{list lst as song}

${song.name|mark}-${listArtists(song.artists)}

{/list}

{elseif index=="artists"}

歌手

{list lst as artist}

${artist.name|mark}

{/list}

{elseif index=="albums"}

专辑

{list lst as album}

${album.name|mark}{if album.artist}-${album.artist.name|mark}{/if}

{/list}

{elseif index=="playlists"}

歌单

{list lst as playlist}

${playlist.name|mark}

{/list}

{elseif index=="mvs"}

视频

{list lst as mv}

MV:${mv.name|mark}{if mv.artistName}-${mv.artistName|mark}{/if}

{/list}

{/if}

{/if}

{/list}

${info|escape}

{if canChange}{/if}

${title}

{if !fail}

{else}

${fail}

{/if}

{if !fail}

{else}

${fail}

{/if}

   

 

知道了

上传节目

删除

取消

服务条款和隐私政策更新

服务条款

同意

{list buttons as item}

${item.text}

{/list}

微信

易信

QQ空间

LOFTER

message

知道了

新浪微博

腾讯微博

豆瓣

140

分享

取消

${tip}

${oktext}

${cctext}

${tip}

${oktext}

{if showSongText}${songTxt}{/if}

${tip}

{if typeof(oktext) != 'undefined'}${oktext}{/if}

{if typeof(cctext) != 'undefined'}${cctext}{/if}

${tip}

{if typeof(oktext) != 'undefined'}${oktext}{/if}

{if typeof(cctext) != 'undefined'}${cctext}{/if}

该资源为公益歌曲

捐赠任意金额(2~4999元)即可无限畅听下载

新浪微博

微信

易信好友

QQ空间

LOFTER

豆瓣

悬赏1积分让大家来帮你补歌词,是否继续?

若30天内歌词未补充,积分将退还给您

继续求

取消

原手机号已停用

(使用其他方式验证)

原手机号仍能使用

(使用手机验证码验证)

{if hasWx}

点击使用微信验证

{/if}

{if hasQQ}

点击使用QQ验证

{/if}

请填写以下安全问题的答案

问题:

回答:

账号或密码错误

上一步

下一步

-请选择-

deepin15(64位)

ubuntu18.04(64位)

您的系统为Windows 10,推荐下载UWP版

下载UWP版本

继续下载PC版本

{list options as o}

${o|filter}

{/list}

使用云音乐客户端

即可无限下载高品质音乐

Mac版V1.9.1

PC版V1.9.1

已安装PC版

扫描下载手机版

该资源为付费内容,扫描下方二维码,使用最新的安卓或iPhone版本购买后即可畅享

{var title=""}

{if artists && artists.length}

{list artists as x}

{if x}

{var title = title + x.name}

{if x_index < x_length - 1}

{var title = title + " / "}

{/if}

{/if}

{/list}

{/if}

${escape(title)}

{if artists && artists.length}

{list artists as x}

{if !!x}

{if !!x.id}

${mark(escape(x.name))}

{else}

${mark(escape(x.name))}

{/if}

{if x_index < x_length - 1} / {/if}

{/if}

{/list}

{/if}

${comJST('com-mv-artists', artists, clazz, mark, boxClazz)}

{if x.userType==4}${before}${after}{elseif x.authStatus==1}${before}${after}{elseif (x.expertTags && x.expertTags.length>0) || !isEmptyObject(x.experts)}${before}${after}{/if}

{if loginUserProfile.avatarDetail&&loginUserProfile.avatarDetail.identityIconUrl}

{/if}

{if x.avatarDetail && x.avatarDetail.identityIconUrl}

{/if}

1/2

{list plist as item}

{/list}

 

{list beg..end as y}

{var x=xlist[y]}

 

${y+1}

{if type=='rank'}

{if x.lastRank>=0}

{if y-x.lastRank>0}

${y-x.lastRank}

{elseif y-x.lastRank==0}

0

{else}

${x.lastRank-y}

{/if}

{else}

{/if}

{/if}

{var alia=songAlia(x)}

${soil(x.name)}{if alia} - (${soil(alia)}){/if}

{if x.mvid>0}

MV

{/if}

${dur2time(x.duration/1000)}{if x.ftype==2}{/if}

分享

{if canDel}

删除

{/if}

${getArtistName(x.artists, '', '', false, false, true)}

{if type=='dayRcmd'}

{if x.album}${x.album.name}{/if}

不感兴趣

{else}

{if x.album}

${soil(x.album.name)}

{/if}

{/if}

{/list}

 

歌曲标题

时长

歌手

{list beg..end as y}

{var x=xlist[y]}

 

${y+1}

{if type=='rank'}

{if x.lastRank>=0}

{if y-x.lastRank>0}

${y-x.lastRank}

{elseif y-x.lastRank==0}

0

{else}

${x.lastRank-y}

{/if}

{else}

{/if}

{/if}

{if x.privilege.fee == 1}

{var alia=songAlia(x)}

${soil(x.name)}{if alia} - (${soil(alia)}){/if}

{if x.mvid>0}

MV

{/if}

{else}

{var alia=songAlia(x)}

${soil(x.name)}{if alia} - (${soil(alia)}){/if}

{if x.mvid>0}

MV

{/if}

{/if}

${dur2time(x.duration/1000)}{if x.ftype==2}{/if}

分享

{if canDel}

删除

{/if}

${getArtistName(x.artists, '', '/', false, true, true)}

{/list}

{list beg..end as y}

{var x=xlist[y]}

 

${y+1}

{var alia=songAlia(x)}

${soil(x.name)}{if alia} - (${soil(alia)}){/if}

{if x.mvid>0}

MV

{/if}

${dur2time(x.duration/1000)}{if x.ftype==2}{/if}

分享

{if canDel}

删除

{/if}

{if x.album}

{var transName = x.album.tns && x.album.tns.length > 0 ? x.album.tns[0] : ''}

${soil(x.album.name)}

{if transName}

- (${transName|escape})

{/if}

{/if}

{/list}

标题

时长

歌手

{list beg..end as y}

{var x=xlist[y]}

{if y<3}

${y+1}

{if x.lastRank>=0}

{if y-x.lastRank>0}

${y-x.lastRank}

{elseif y-x.lastRank==0}

0

{else}

${x.lastRank-y}

{/if}

{else}

{/if}

{if x.album}{/if}

 

{var alia=songAlia(x)}

${soil(x.name)}{if alia} - (${soil(alia)}){/if}

{if x.mvid>0}

MV

{/if}

{else}

${y+1}

{if x.lastRank>=0}

{if y-x.lastRank>0}

${y-x.lastRank}

{elseif y-x.lastRank==0}

0

{else}

${x.lastRank-y}

{/if}

{else}

{/if}

 

{var alia=songAlia(x)}

${soil(x.name)}{if alia} - (${soil(alia)}){/if}

{if x.mvid>0}

MV

{/if}

{/if}

${dur2time(x.duration/1000)}{if x.ftype==2}{/if}

分享

{if canDel}

删除

{/if}

${getArtistName(x.artists, '', '', false, false, true)}

{/list}

{list beg..end as y}

{var x=xlist[y]}

 

${y+1}

{var alia=songAlia(x)}

${soil(x.name)}{if alia} - (${soil(alia)}){/if}

{if x.mvid>0}

MV

{/if}

${dur2time(x.duration/1000)}{if x.ftype==2}{/if}

分享

{if canDel}

删除

{/if}

${getArtistName(x.artists, '', '', false, false, true)}

{if x.album}

${soil(x.album.name)}

{/if}

{/list}

{list beg..end as y}

{var x=xlist[y]}

{if extData&&extData.limit&&y>=extData.limit}

{break}

{/if}

{var from=getFrom()}

 

${y+1}.

${x.name}

-

${getArtistName(x.artists, 's-fc8')}

分享

下载

{if extData.showCount&&x.playCount}${x.playCount}次{/if}

{/list}

{if extData&&extData.limit&&xlist.length>extData.limit}

查看更多>

{/if}

{list beg..end as y}

{var x=xlist[y]}

 

${y+1}

{if type=='rank'}

{if x.lastRank>=0}

{if y-x.lastRank>0}

${y-x.lastRank}

{elseif y-x.lastRank==0}

0

{else}

${x.lastRank-y}

{/if}

{else}

{/if}

{/if}

{var alia=songAlia(x)}

${soil(x.name)}{if alia} - (${soil(alia)}){/if}

{if x.mvid>0}

MV

{/if}

分享

{if canDel}

删除

{/if}

${getArtistName(x.artists, '', '', false, false, true)}

{if x.album}

${soil(x.album.name)}

{/if}

${formatTime(x.paidTime)}

{/list}

最多选择10位好友

发 给:

内 容: