Tạo password bằng số seri của máy (1 người xem)

  • Thread starter Thread starter nad582
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

nad582

Thành viên thường trực
Tham gia
7/6/11
Bài viết
317
Được thích
48
chào các bạn!! Mình có vần đề như sau:
Khi mở file lên thì hiện lên 1 bảng (userForm) có 3 phần:
1 là username: chính là tên của máy tính
2 là Password 1: chính là số seri của máy tính
3 là Password 2: chính là số HDD của máy tính
khi điền đúng đủ 3 phần trên thì mở file, nếu 1 trong 3 phần trên sai thì close file.....
mình có file lấy số seri ở file đính kèm...
Nhờ các bạn giúp mình. Thanks nhiều...^^
 
chào các bạn!! Mình có vần đề như sau:
Khi mở file lên thì hiện lên 1 bảng (userForm) có 3 phần:
1 là username: chính là tên của máy tính
2 là Password 1: chính là số seri của máy tính
3 là Password 2: chính là số HDD của máy tính
khi điền đúng đủ 3 phần trên thì mở file, nếu 1 trong 3 phần trên sai thì close file.....
mình có file lấy số seri ở file đính kèm...

Hoặc bạn hỏi mà không suy nghĩ hoặc tôi không hiểu được ý tưởng tuyệt vời của bạn. Rất có thể là cái thứ hai vì già rồi mà.
Tôi chỉ có vài câu hỏi:

1. Tôi là người dùng tập tin của bạn. Bạn bắt tôi phải nhập 3 thông tin trên?
UserName thì do tôi hồi xa xưa tự đặt nên chắc chắn tôi biết. 2 thông tin tiếp theo bạn dùng code gọi hàm của system để đọc ra. Còn tôi là người dùng bình thường thì tôi đọc từ đâu ra để thỏa mãn bạn?

2. Nếu tôi rất muốn chiều bạn nhưng sức có hạn nên không cung cấp được thông tin và bực mình tôi disable macro thì công lao bạn bỏ ra để rào chắn đổ xuống sông xuống biển à?

3. Nếu sức có hạn nên tôi google hoặc sực nhớ là có sư phụ ndu trên GPE đã từng tặng code để đọc các thông số trên thì sao? Thì tôi tạo tập tin đọc các thông số ra rồi điền vào cái UserForm của bạn thì công lao của bạn là công cốc à?

Hay vẫn còn có gì đó trong ý tưởng của bạn mà tôi không hiểu?
 
Upvote 0
Có thể bạn nad582 này mới làm quen và lẫn giữa 2 khái niệm "bảo mật" và "bảo vệ bản quyền".

Tôi cho ý tưởng của nad có thể là: Các thông tin số seri, số HDD của máy tính đã lưu trong Code.
Khi chạy, Code đọc lại các thông tin đó và so sánh với giá trị đã lưu trong Code. Nếu đúng thì chạy tiếp.

Như vậy, chép file sang máy khác thì không chạy (bản quyền: không cho sao chép) mà end.

 
Upvote 0
Có thể bạn nad582 này mới làm quen và lẫn giữa 2 khái niệm "bảo mật" và "bảo vệ bản quyền".

Tôi cho ý tưởng của nad có thể là: Các thông tin số seri, số HDD của máy tính đã lưu trong Code.
Khi chạy, Code đọc lại các thông tin đó và so sánh với giá trị đã lưu trong Code. Nếu đúng thì chạy tiếp.

Như vậy, chép file sang máy khác thì không chạy (bản quyền: không cho sao chép) mà end.

cảm ơn các bạn đã có ý!! Ý tưởng của mình là kết hợp giữa bảo mật và bản quyền!!
Có nghĩa là bạn muốn sử dụng file của mình thì phải nhập mật khẩu thì mới sử dụng được không thì thoát (mật khẩu thì chính là các thông số như tên máy, số seri và số HDD của máy bạn) mình đã mô tả từ đầu rồi.
Mong các bạn giúp đỡ!!!!cảm ơn....
 
Upvote 0
Hồi lúc mới học VBA, vài ba cái code mà mới đầu tôi học lỏm được, tôi tưởng tôi "vĩ đại" lắm nên bằng mọi cách tôi khóa code, protect tùm lum hết, giờ xem lại mấy cái file đó tôi thấy tức cười quá chừng! Vả lại chẳng bảo mật được gì nếu gặp cao thủ, còn gặp người kém cỏi thì nếu xem code cũng chẳng biết gì! Bây giờ tôi cũng khóa sheet, cũng bảo vệ VBA, nhưng chỉ hạn chế người không biết gì có tật táy máy tay chân, lỡ dại mà xóa vài đoạn code nào đó thì cái công viết, cũng như tiện ích do nó tạo ra coi như "tèo téo teo" luôn.

Quay lại với chủ topic và những người thích "làm khó" người dùng, nên đặt password do chính mình đặt ra, nó còn khó tìm hơn cả cái series số lưu trong máy, và cái series đó dài dằng dặt khó nhớ muốn chết luôn!
 
Upvote 0
Quay lại với chủ topic và những người thích "làm khó" người dùng, nên đặt password do chính mình đặt ra, nó còn khó tìm hơn cả cái series số lưu trong máy, và cái series đó dài dằng dặt khó nhớ muốn chết luôn!
Mình hiểu ý của b!! do tính chất mình vừa muốn cho người khác sử dụng và không cho copy qua máy khác nên mình mong các bạn giúp đỡ....
 
Upvote 0
Có nghĩa là bạn muốn sử dụng file của mình thì phải nhập mật khẩu thì mới sử dụng được không thì thoát (mật khẩu thì chính là các thông số như tên máy, số seri và số HDD của máy bạn) mình đã mô tả từ đầu rồi.

Mật khẩu là chính thông số của máy thì có cũng như không (siwton đã nói ở trên đó).
Nên nếu bạn ưa chọn ý tưởng của tôi trong bài 3 thì nên có các bước sau (để tiện tôi chỉ lấy 1 thông số là tên máy)
- Trên file cần bảo vệ bản quyền, bạn có 1 biến nhớ tên máy (tên là TM). Đại khái là
Dim TM as String
TM = "XXXX"
(XXXX là tên máy của bạn, biết nhờ những mã lệnh bạn đã có đó)

Có lệnh đọc tên máy vào biến TAM và lệnh
IF TAM <> TM then (lệnh đóng Excel)

Cũng có 1 Sub hiện Tên máy (Sub HienTenMay)

- Bảo vệ không cho đọc Code của bạn. Hãy nhớ mật khẩu.

- Khi sao chép cho ai file này xong, bạn mở file, chạy Sub HienTenMay, sửa XXXX ở Code TM = "XXXX" theo tên máy mới

- Đóng file và thử mở lại. Chắc là sẽ chạy bình thường. Nếu ai đó chép sang máy khác, vì họ không có mật khẩu đọc Code nên không sửa được XXXX theo máy mới nên có chép cũng không chạy. Vậy là bạn bảo vệ được "bản quyền" nếu ai đó không phá được mật khẩu đọc Code của file (họ vẫn mở được file nếu ấn phím Shift - tôi không nhớ rõ - khi mở file, disable macro - như siwton đã nói - rồi mở tiếp Code của bạn)

Tôi định gửi 1 file demo, trong đó dùng sự kiện khi đóng file sẽ ẩn mọi Sheet, trừ 1 Sheet vớ vẩn. Nếu disable macro thì chỉ hiện sheet vớ vẩn đó. Còn không thì Code chạy và tùy: nếu đúng máy thì hiện các sheet dữ liệu (dùng sự kiện Open), sai thì thoát Excel. Nhưng bận quá.

Gửi rồi đọc lại thấy anh Nghĩa nói đúng đó. Tất nhiên bạn cứ tự thử thách chính mình
 
Lần chỉnh sửa cuối:
Upvote 0
Mình hiểu ý của b!! do tính chất mình vừa muốn cho người khác sử dụng và không cho copy qua máy khác nên mình mong các bạn giúp đỡ....

Để xem, tôi hiểu ý bạn như thế nào nhé.

Khi người dùng gõ sơ-ri vào thì sơ-ri đó phải khớp với sơ-ri trong code, đồng thời phải trùng với sơ-ri của máy tính thì mới chạy được chương trình của bạn phải không?

Sao bài này giống với bài của bạn Bảy Dzõ vậy ta? Hiểu sơ bộ là như vậy, nhưng tôi thì không phải dân hacker nên không can thiệp vào cái sơ-ri đăng ký của máy tính.
 
Upvote 0
Mật khẩu là chính thông số của máy thì có cũng như không (siwton đã nói ở trên đó).
Nên nếu bạn ưa chọn ý tưởng của tôi trong bài 3 thì nên có các bước sau (để tiện tôi chỉ lấy 1 thông số là tên máy)
- Trên file cần bảo vệ bản quyền, bạn có 1 biến nhớ tên máy (tên là TM). Đại khái là
Dim TM as String
TM = "XXXX"
(XXXX là tên máy của bạn, biết nhờ những mã lệnh bạn đã có đó)

Có lệnh đọc tên máy vào biến TAM và lệnh
IF TAM <> TM then (lệnh đóng Excel)

Cũng có 1 Sub hiện Tên máy (Sub HienTenMay)

- Bảo vệ không cho đọc Code của bạn. Hãy nhớ mật khẩu.

- Khi sao chép cho ai file này xong, bạn mở file, chạy Sub HienTenMay, sửa XXXX ở Code TM = "XXXX" theo tên máy mới

- Đóng file và thử mở lại. Chắc là sẽ chạy bình thường. Nếu ai đó chép sang máy khác, vì họ không có mật khẩu đọc Code nên không sửa được XXXX theo máy mới nên có chép cũng không chạy. Vậy là bạn bảo vệ được "bản quyền" nếu ai đó không phá được mật khẩu đọc Code của file (họ vẫn mở được file nếu ấn phím Shift - tôi không nhớ rõ - khi mở file, disable macro - như siwton đã nói - rồi mở tiếp Code của bạn)

Tôi định gửi 1 file demo, trong đó dùng sự kiện khi đóng file sẽ ẩn mọi Sheet, trừ 1 Sheet vớ vẩn. Nếu disable macro thì chỉ hiện sheet vớ vẩn đó. Còn không thì Code chạy và tùy: nếu đúng máy thì hiện các sheet dữ liệu (dùng sự kiện Open), sai thì thoát Excel. Nhưng bận quá.
b gửi mình tập tin đình kèm luôn đi!!
 
Upvote 0
Để xem, tôi hiểu ý bạn như thế nào nhé.

Khi người dùng gõ sơ-ri vào thì sơ-ri đó phải khớp với sơ-ri trong code, đồng thời phải trùng với sơ-ri của máy tính thì mới chạy được chương trình của bạn phải không?
Nói chung là tên tài khoản hoặc số seri thì ko cần phải nhớ b ak, tại có file lấy số seri mình để ở file đính kèm đó, chỉ copy và dán thôi...
 
Upvote 0
Nói chung là tên tài khoản hoặc số seri thì ko cần phải nhớ b ak, tại có file lấy số seri mình để ở file đính kèm đó, chỉ copy và dán thôi...

Nói chung là bạn chỉ cần cái này (đặt trong module của Thisworkbook):

Mã:
Option Explicit

Private Sub Workbook_Open()
    Dim SeriesNumber As String, HDD As String
    SeriesNumber = "202020202020202020202020563534484b463651"
    HDD = "2073004635"
    If doc_ma_dia <> SeriesNumber Or Readserienumber <> HDD Then
        If Application.Workbooks.Count = 1 Then
            Application.Quit
        Else
            ThisWorkbook.Close False
        End If
    End If
End Sub

Khi chạy cái này, nhằm hạn chế tối đa các vấn đề không cho chạy macro, bạn nên ẩn sheet (veryhidden), chỉ chừa 1 sheet Menu hay giới thiệu gì đó thôi. Đồng thời phải protect structure của workbook thì sẽ hạn chế bị xem file.
 
Lần chỉnh sửa cuối:
Upvote 0
Làm gì thì làm nhưng chẳng có tính bảo mật nào đâu.
 
Upvote 0
chào các bạn!! Mình có vần đề như sau:
Khi mở file lên thì hiện lên 1 bảng (userForm) có 3 phần:
1 là username: chính là tên của máy tính
2 là Password 1: chính là số seri của máy tính
3 là Password 2: chính là số HDD của máy tính
khi điền đúng đủ 3 phần trên thì mở file, nếu 1 trong 3 phần trên sai thì close file.....
mình có file lấy số seri ở file đính kèm...
Nhờ các bạn giúp mình. Thanks nhiều...^^

Tôi thì chẳng quan tâm mấy cái vụ bảo vệ bản quyền gì đó...
Cứ cho là làm được đi... Vấn đề quan trong mà tôi đang thắc mắc là:
- Chương trình của bạn hoành tráng đến cở nào mà phải bảo vệ bản quyền?
- Nếu bạn có đủ khả năng tạo ra 1 chương trình hoành tráng thì sao lại không làm được cái vụ bản quyền này?
- Nếu chương trình của bạn chỉ thuộc loại "tầm thường" thì bản quyền để làm cóc khô gì?

Vân vân và vân vân... nhiều cái nghịch lý quá
(xem xong 2 file của bạn thì tôi chẳng thấy có cái gì gọi là "hoành tá tràng" trong đó cả)
 
Upvote 0
Nói chung là bạn chỉ cần cái này (đặt trong module của Thisworkbook):

Mã:
Option Explicit

Private Sub Workbook_Open()
    Dim SeriesNumber As String, HDD As String
    SeriesNumber = "202020202020202020202020563534484b463651"
    HDD = "2073004635"
    If doc_ma_dia <> SeriesNumber Or Readserienumber <> HDD Then
        If Application.Workbooks.Count = 1 Then
            Application.Quit
        Else
            ThisWorkbook.Close False
        End If
    End If
End Sub
View attachment 101576 có thể đăng nhập như vầy được không bạn...(nếu dùng cách b thì người dùng phải vào Visual Basis nhưng mình ko muốn người dùng thấy code)...
username: chính là tên của máy tính
Password 1: chính là số seri của máy tính
Password 2: chính là số HDD của máy tính
^^
 
Upvote 0
có thể đăng nhập như vầy được không bạn...(nếu dùng cách b thì người dùng phải vào Visual Basis nhưng mình ko muốn người dùng thấy code)...

Thật ra dãy số không quan trọng, mà quan trọng là nó đối chiếu với số của mấy có đúng không thôi. Dù cho nó có những dãy số đó, nhưng trong máy của người đó không có thì cũng không xài được.

Tôi không hiểu người dùng thấy code là thấy thế nào? Bạn thử với nó chưa? Nếu không đúng thì nó tự thoát rồi chứ có đâu mà mở được file???
 
Lần chỉnh sửa cuối:
Upvote 0
Cứ cho là làm được đi... Vấn đề quan trong mà tôi đang thắc mắc là:
- Chương trình của bạn hoành tráng đến cở nào mà phải bảo vệ bản quyền?
- Nếu bạn có đủ khả năng tạo ra 1 chương trình hoành tráng thì sao lại không làm được cái vụ bản quyền này?
- Nếu chương trình của bạn chỉ thuộc loại "tầm thường" thì bản quyền để làm cóc khô gì?

Vân vân và vân vân... nhiều cái nghịch lý quá
(xem xong 2 file của bạn thì tôi chẳng thấy có cái gì gọi là "hoành tá tràng" trong đó cả)
Nói thật thì cũng chỉ là file tính bình thường thôi b ak...
chỉ qua mình muốn tìm hiểu về cách đặt pass mới cho mình, mình biết chắc những người giỏi (như các bạn trong GPE) sẽ mở được pass và bẻ khóa được bản quyền nên ko thể che giấu được. Vì vậy mình mới nhờ các bạn giúp dỡ...
Tóm lại mình chỉ muốn học hỏi thêm nhiều cách thôi....
cảm ơn tất cả các bạn...
 
Upvote 0
Thật ra dãy số không quan trọng, mà quan trọng là nó đối chiếu với số của mấy có đúng không thôi. Dù cho nó có những dãy số đó, nhưng trong máy của người đó không có thì cũng không xài được.

Tôi không hiểu người dùng thấy code là thấy thế nào? Bạn thử với nó chưa? Nếu không đúng thì nó tự thoát rồi chứ có đâu mà mở được file???
Cảm ơn các bạn nhiệt tình giúp đỡ, mình tìm hiểu ra rồi ^.^
 
Upvote 0
Cảm ơn các bạn nhiệt tình giúp đỡ, mình tìm hiểu ra rồi ^.^

Bạn thấy code ổn? Tôi và mọi người đã nói rồi: nếu người dùng disable macro thì công lao của bạn đổ xuống sông xuống biển. Mà chuyện disable macro là cái dễ. Nếu ai đã học 1 khóa về Excel thì chắc chắn sẽ biết. Những người chưa học khóa nào thì họ có thể hỏi đồng nghiệp, bạn bè. Đảm bảo sẽ có ít nhất 1 người trong số họ biết.
Vậy thì nhọc công làm gì?
 
Upvote 0
Cảm ơn các bạn nhiệt tình giúp đỡ, mình tìm hiểu ra rồi ^.^

Thà bạn làm như tôi đã hướng dẫn, tức là bạn chép sẳn 3 dữ liệu của máy bạn vào code, sau đó lưu lại. Nếu đúng là máy của bạn, khi mở file nó chạy thủ tục để lấy 3 dữ liệu đó, sau đó so sánh với 3 dữ liệu có sẳn trong code (số này là số chỉ có ở máy bạn), nếu trùng hết chỉ có thể là máy của bạn, còn không thì nó tự thoát.

Với cái form của bạn, bạn bắt người ta nhớ các thông số đó, nhưng nhớ rồi cũng bị thoát vì không đúng máy. Nếu ngồi đúng máy thì cũng quá nhức đầu cho việc phải nhập các số trên textbox.

Cũng nói thêm, ngoài việc ta không cho chạy macro thì còn thêm 1 cách nữa là bấm tổ hợp phím Ctrl+Break cũng làm cho thoát form mà không ảnh hưởng đến việc thoát file hay là không.
 
Upvote 0
Cảm ơn các bạn nhiệt tình giúp đỡ, mình tìm hiểu ra rồi ^.^

Nếu muốn bảo mật hay cái gì đó đại loại như vầy, thì mình khuyên bạn không nên dùng VBA, lý do:
Chỉ cần bạn nào biết tẹo về VBA, hay lên diễn đàn ---> clik vào xem những bài viết của anh Siwtom --> Đảm bảo sẽ tìm thấy một đoạn code có tên là " Đánh Tráo" hay " Trả lại " gì đó.......... ^^
Dù pass hay seri có là XXX gì đó thì cũng die hết, bạn ah:horse:
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom