SQL Server 2005 – Hack dữ liệu đã mã hoá bởi mật khẩu
Số trang: 10
Loại file: pdf
Dung lượng: 309.22 KB
Lượt xem: 9
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Như bạn đã biết, mã hoá bằng mật khẩu là một phương pháp mã hoá dữ liệu cơ bản chỉ sử dụng đến mật khẩu và có thể giải mã với cùng mật khẩu đó. Giờ hãy giả dụ chúng ta quên mất mật khẩu đã đặt và cần phải khôi phục lại dữ liệu như ban đầu. phần 1 của loạt bài này, chúng tôi đã giới thiệu phương pháp mã hoá và giải mã bằng mật khẩu. Phần 2 này sẽ đi vào cách hack lại dữ liệu đó. Như bạn đã biết, mã hoá bằng mật khẩu...
Nội dung trích xuất từ tài liệu:
SQL Server 2005 – Hack dữ liệu đã mã hoá bởi mật khẩu SQL Server 2005 – Hack dữ liệu đã mã hoá bởi mật khẩuNhư bạn đã biết, mã hoá bằng mật khẩu là một phương pháp mã hoá dữ liệu cơ bản chỉ sử dụngđến mật khẩu và có thể giải mã với cùng mật khẩu đó. Giờ hãy giả dụ chúng ta quên mất mậtkhẩu đã đặt và cần phải khôi phục lại dữ liệu như ban đầu.phần 1 của loạt bài này, chúng tôi đã giới thiệu phương pháp mã hoá và giải mã bằng mậtkhẩu. Phần 2 này sẽ đi vào cách hack lại dữ liệu đó.Như bạn đã biết, mã hoá bằng mật khẩu là một phương pháp mã hoá dữ liệu cơ bản chỉ sử dụngđến mật khẩu và có thể giải mã với cùng mật khẩu đó. Giờ hãy giả dụ chúng ta quên mất mậtkhẩu đã đặt và cần phải khôi phục lại dữ liệu như ban đầu.Bước 1Mã hoá dữ liệu theo phương pháp mã hoá bằng mật khẩuselect EncryptedData = EncryptByPassPhrase(MAK, 123456789 )Kết quảEncryptedData--------------------------------------------------------------------------0x01000000F75D553409C74570F6DDBCADA53FD489DDD52D9277010050565ADF30F244F8CCBước 2Tạo thủ tục sử dụng để khôi phục lại dữ liệu đã má hoá. Thủ tục này sẽ sử dụng hàmDecryptByPassPhrase để giải mã dữ liệu và hiển thị lên mật khẩu.USE [Master]GO/****** Object: StoredProcedure [dbo].[hack_encryption] Script Date:12/18/2007 18:18:36 ******/IF EXISTS (SELECT * FROM sys.objects WHERE object_id =OBJECT_ID(N[dbo].[hack_encryption])AND type in (NP, NPC))DROP PROCEDURE [dbo].[hack_encryption]GOset nocount onSET CONCAT_NULL_YIELDS_NULL OFFgoUSE [Master]GO/****** Object: StoredProcedure [dbo].[hack_encryption] Script Date:12/18/2007 18:18:55 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE procedure [dbo].[hack_encryption] @encryptedtext varbinary(max)asdeclare @password varchar(6)declare @i intdeclare @j intdeclare @k intdeclare @l intdeclare @m intdeclare @n intset @i=-1set @j=-1set @k=-1set @l=-1set @m=-1set @n=-1set @password =while @iset @l=0set @k=@k+1endset @k=0set @j=@j+1endset @j=0set @i=@i+1endGOBước 3Giả sử rằng bạn đã quên mật khẩu dùng để mã hoá dữ liệu thành“0x01000000F75D553409C74570F6DDBCADA53FD489DDD52D9277010050565ADF30F244F8CC”. Chúng ta có thể truy tìm lại được mật khẩu và dữ liệu đã bị mã hoá bằng thủ tục sauuse mastergoselect getdate() as StartingTimegodeclare @myencryptedtext varbinary(max)set@myencryptedtext=0x01000000F75D553409C74570F6DDBCADA53FD489DDD52D9277010050565ADF30F244F8CCprint @myencryptedtextexec hack_encryption @encryptedtext=@myencryptedtextgoselect getdate() as EndingTimegoKết quảStartingTime-----------------------2007-12-18 18:24:10.8430x01000000F75D553409C74570F6DDBCADA53FD489DDD52D9277010050565ADF30F244F8CCThis is the Encrypted text: MAKThe actual data is :123456789EndingTime-----------------------2007-12-18 18:26:36.080 Hình 1Như bạn thấy trong kết quả (hình 1), nó chỉ cần đển 2 phút để tìm lại được dữ liệu và mật khẩu.Về cơ bản, thủ tục này lặp lại tất cả khả năng hợp lý có thể xảy ra của các ký tự ASCII có độ dàitrên 6 ký tự để tìm ra mật khẩu và sử dụng nó để giải mã dữ liệu.Tạo ra một thủ tục sẽ không giúp gì nhiều khi dữ liệu đã được mã hoá nằm trong một bảng. Vìvậy chúng ta phải thay đổi thủ thục này thành một hàm vô hướng như hướng dẫn dưới đâyBước 1Tạo thủ tục như sauUSE [master]GO/****** Object: UserDefinedFunction [dbo].[hack_encryption_password] ScriptDate: 12/18/2007 18:36:29 ******/IF EXISTS (SELECT * FROM sys.objects WHERE object_id =OBJECT_ID(N[dbo].[hack_encryption_password])AND type in (NFN, NIF, NTF, NFS, NFT))DROP FUNCTION [dbo].[hack_encryption_password]GOuse [Master]goCREATE function [dbo].[hack_encryption_password] (@encryptedtextvarbinary(max))returns varchar(6)with execute as callerasbegindeclare @password varchar(6)declare @i intdeclare @j intdeclare @k intdeclare @l intdeclare @m intdeclare @n intset @i=-1set @j=-1set @k=-1set @l=-1set @m=-1set @n=-1set @password =while @iset @j=0set @i=@i+1endreturn @passwordENDBước 2Tạo một bảng với dữ liệu được mã hoáUSE [tempdb]GO/****** Object: Table [dbo].[MyTable] Script Date: 12/18/2007 18:44:40******/IF EXISTS (SELECT * FROM sys.objects WHERE object_id =OBJECT_ID(N[dbo].[MyTable]) AND type in (NU))DROP TABLE [dbo].[MyTable]GOcreate table MyTable(id int, encrypteddata varbinary(max))goinsert into MyTable select 1, EncryptByPassPhrase(Do, 1112228333)insert into MyTable select 2, EncryptByPassPhrase(Re, 1212223833)insert into MyTable select 3, EncryptByPassPhrase(Me, 1132223393)insert into MyTable select 4, EncryptByPassPhrase(Fa, 1114223383)insert into MyTable select 5, EncryptByPassPhrase(So, 1112523333)insert into MyTable select 6, EncryptByPassPhrase(La, 1112263373)insert into MyTable select 7 ...
Nội dung trích xuất từ tài liệu:
SQL Server 2005 – Hack dữ liệu đã mã hoá bởi mật khẩu SQL Server 2005 – Hack dữ liệu đã mã hoá bởi mật khẩuNhư bạn đã biết, mã hoá bằng mật khẩu là một phương pháp mã hoá dữ liệu cơ bản chỉ sử dụngđến mật khẩu và có thể giải mã với cùng mật khẩu đó. Giờ hãy giả dụ chúng ta quên mất mậtkhẩu đã đặt và cần phải khôi phục lại dữ liệu như ban đầu.phần 1 của loạt bài này, chúng tôi đã giới thiệu phương pháp mã hoá và giải mã bằng mậtkhẩu. Phần 2 này sẽ đi vào cách hack lại dữ liệu đó.Như bạn đã biết, mã hoá bằng mật khẩu là một phương pháp mã hoá dữ liệu cơ bản chỉ sử dụngđến mật khẩu và có thể giải mã với cùng mật khẩu đó. Giờ hãy giả dụ chúng ta quên mất mậtkhẩu đã đặt và cần phải khôi phục lại dữ liệu như ban đầu.Bước 1Mã hoá dữ liệu theo phương pháp mã hoá bằng mật khẩuselect EncryptedData = EncryptByPassPhrase(MAK, 123456789 )Kết quảEncryptedData--------------------------------------------------------------------------0x01000000F75D553409C74570F6DDBCADA53FD489DDD52D9277010050565ADF30F244F8CCBước 2Tạo thủ tục sử dụng để khôi phục lại dữ liệu đã má hoá. Thủ tục này sẽ sử dụng hàmDecryptByPassPhrase để giải mã dữ liệu và hiển thị lên mật khẩu.USE [Master]GO/****** Object: StoredProcedure [dbo].[hack_encryption] Script Date:12/18/2007 18:18:36 ******/IF EXISTS (SELECT * FROM sys.objects WHERE object_id =OBJECT_ID(N[dbo].[hack_encryption])AND type in (NP, NPC))DROP PROCEDURE [dbo].[hack_encryption]GOset nocount onSET CONCAT_NULL_YIELDS_NULL OFFgoUSE [Master]GO/****** Object: StoredProcedure [dbo].[hack_encryption] Script Date:12/18/2007 18:18:55 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE procedure [dbo].[hack_encryption] @encryptedtext varbinary(max)asdeclare @password varchar(6)declare @i intdeclare @j intdeclare @k intdeclare @l intdeclare @m intdeclare @n intset @i=-1set @j=-1set @k=-1set @l=-1set @m=-1set @n=-1set @password =while @iset @l=0set @k=@k+1endset @k=0set @j=@j+1endset @j=0set @i=@i+1endGOBước 3Giả sử rằng bạn đã quên mật khẩu dùng để mã hoá dữ liệu thành“0x01000000F75D553409C74570F6DDBCADA53FD489DDD52D9277010050565ADF30F244F8CC”. Chúng ta có thể truy tìm lại được mật khẩu và dữ liệu đã bị mã hoá bằng thủ tục sauuse mastergoselect getdate() as StartingTimegodeclare @myencryptedtext varbinary(max)set@myencryptedtext=0x01000000F75D553409C74570F6DDBCADA53FD489DDD52D9277010050565ADF30F244F8CCprint @myencryptedtextexec hack_encryption @encryptedtext=@myencryptedtextgoselect getdate() as EndingTimegoKết quảStartingTime-----------------------2007-12-18 18:24:10.8430x01000000F75D553409C74570F6DDBCADA53FD489DDD52D9277010050565ADF30F244F8CCThis is the Encrypted text: MAKThe actual data is :123456789EndingTime-----------------------2007-12-18 18:26:36.080 Hình 1Như bạn thấy trong kết quả (hình 1), nó chỉ cần đển 2 phút để tìm lại được dữ liệu và mật khẩu.Về cơ bản, thủ tục này lặp lại tất cả khả năng hợp lý có thể xảy ra của các ký tự ASCII có độ dàitrên 6 ký tự để tìm ra mật khẩu và sử dụng nó để giải mã dữ liệu.Tạo ra một thủ tục sẽ không giúp gì nhiều khi dữ liệu đã được mã hoá nằm trong một bảng. Vìvậy chúng ta phải thay đổi thủ thục này thành một hàm vô hướng như hướng dẫn dưới đâyBước 1Tạo thủ tục như sauUSE [master]GO/****** Object: UserDefinedFunction [dbo].[hack_encryption_password] ScriptDate: 12/18/2007 18:36:29 ******/IF EXISTS (SELECT * FROM sys.objects WHERE object_id =OBJECT_ID(N[dbo].[hack_encryption_password])AND type in (NFN, NIF, NTF, NFS, NFT))DROP FUNCTION [dbo].[hack_encryption_password]GOuse [Master]goCREATE function [dbo].[hack_encryption_password] (@encryptedtextvarbinary(max))returns varchar(6)with execute as callerasbegindeclare @password varchar(6)declare @i intdeclare @j intdeclare @k intdeclare @l intdeclare @m intdeclare @n intset @i=-1set @j=-1set @k=-1set @l=-1set @m=-1set @n=-1set @password =while @iset @j=0set @i=@i+1endreturn @passwordENDBước 2Tạo một bảng với dữ liệu được mã hoáUSE [tempdb]GO/****** Object: Table [dbo].[MyTable] Script Date: 12/18/2007 18:44:40******/IF EXISTS (SELECT * FROM sys.objects WHERE object_id =OBJECT_ID(N[dbo].[MyTable]) AND type in (NU))DROP TABLE [dbo].[MyTable]GOcreate table MyTable(id int, encrypteddata varbinary(max))goinsert into MyTable select 1, EncryptByPassPhrase(Do, 1112228333)insert into MyTable select 2, EncryptByPassPhrase(Re, 1212223833)insert into MyTable select 3, EncryptByPassPhrase(Me, 1132223393)insert into MyTable select 4, EncryptByPassPhrase(Fa, 1114223383)insert into MyTable select 5, EncryptByPassPhrase(So, 1112523333)insert into MyTable select 6, EncryptByPassPhrase(La, 1112263373)insert into MyTable select 7 ...
Tìm kiếm theo từ khóa liên quan:
Cơ sở dữ liệu Quản trị web Hệ điều hành Công nghệ thông tin Tin họcGợi ý tài liệu liên quan:
-
Giáo trình Lý thuyết hệ điều hành: Phần 1 - Nguyễn Kim Tuấn
110 trang 451 0 0 -
52 trang 429 1 0
-
62 trang 401 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 378 6 0 -
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 312 0 0 -
74 trang 295 0 0
-
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 292 0 0 -
13 trang 292 0 0
-
96 trang 291 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 289 0 0