Danh mục

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    
tailieu_vip

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 ...

Tài liệu được xem nhiều:

Gợi ý tài liệu liên quan: