Không phải vì code của Oanh Thơ có giá trị hay độc đáo mà Oanh Thơ phải làm như vậy (Oanh Thơ không biết code ạ). Oanh Thơ chỉ xin code mã hóa code vì Oanh Thơ muốn mã hóa các code trong tệp tin quan trọng có nhiều người dùng.Oanh Thơ không muốn giải mã code của người khác.
Chủ thớt là người Hà Nam Ninh nên nói sao thì viết vậy.
Đúng ra tiêu đề phải ghi như vầy mới đúng: Code viết bằng chữ viết của nước nào.
Theo tôi thì chủ thớt không nên tìm hiểu cách đặt biến để mã hóa code làm gì cho tốn công sức, cái gì ứng dụng thực tế được mà rõ ràng thì cứ chơi, chứ đừng có chạy theo người khác có ngày nó bị lỗi thì không biết đâu mà lần.
Tìm hiểu về bảo mật thì đúng là chỉ tốn công sức và không nên, nhưng tìm hiểu về cái này cũng là học ấy chứ.
Đối với những người không biết code như chủ thớt it nhiều thì cũng học được cách khai báo đặt biến.
Ngoài học ra chủ thớt cũng đã viết rất rõ ràng mục đích của mình:
Không phải vì code của Oanh Thơ có giá trị hay độc đáo mà Oanh Thơ phải làm như vậy (Oanh Thơ không biết code ạ). Oanh Thơ chỉ xin code mã hóa code vì Oanh Thơ muốn mã hóa các code trong tệp tin quan trọng có nhiều người dùng.Oanh Thơ không muốn giải mã code của người khác.
Có thể chủ thớt cũng nhận ra rằng vấn đề bảo mật hiện nay là không thể nhất là đối với một tệp tin "quan trọng" mà có nhiều người dùng nên mới muốn mã hóa code như vậy.
Về lỗi thì cũng có thể kiểm soát được chứ, tuy nhiên việc kiểm soát và sửa lỗi sẽ vất hơn vì phải mất thêm thời gian để backup lại code ban đầu (chưa mã hóa).
---------------------
Tôi thấy những thớt kiểu này mới đầu thì có rất nhiều ý kiến phản đối nhưng sau khi đưa ra giải pháp thì lại có rất nhiều vấn đề cho chúng ta thảo luận.
Không nói đâu xa chính tôi trước đây cũng đã từng có 1 thớt dạng này, mới đầu thì không ai hứng thú nhưng càng lúc thì anh em càng sôi nổi và cho đến thời điểm này thớt đó cũng nằm trong trang nhất "chủ đề có nhiều lượt xem" ấy chứ.
Cảm ơn tất cả các bạn vì đã góp ý và hỗ trợ cho Oanh Thơ trong chủ đề này ạ.
Trước khi mở chủ đề này Oanh Thơ cũng đã nhận được lời khuyên của một người bạn đặc biệt rồi ạ,nhưng vì nhu cầu cần thiết như đã nêu ở bài 1 nên Oanh Thơ đã quyết định mở chủ đề này.
Hiện tại Oanh Thơ đang không có một chút kiến thức gì về lập trình,sau khi nhận được lời khuyên của các bạn và nhất là từ người bạn đặc biệt của mình (những người đi trước và có nhiều kinh nghiệm) nên Oanh Thơ cũng không muốn tiếp tục viết bài trong chủ đề này nữa ạ.Nếu có bạn nào quan tâm và vẫn muốn tiếp tục thì xin mời ạ.
Kính chúc tất cả mọi người thêm tuổi mới thêm nhiều rực rỡ!
Phiền bạn code giúp 1 code để có thể mã hóa được code sau theo phương án trên với.
PHP:
Option Explicit
Sub tim()
'Tìm Dòng & Chèn Vào Dòng Tìm Duoc'
Dim Thay As Range, wS As Worksheet
Dim GT As Integer
On Error GoTo LoiCT
1 Set wS = Sheets("Info")
GT = Me!cmbRoom.Value
3 Set Thay = wS.Columns("B:B").Find(what:=GT, LookIn:=xlValues, lookat:=xlWhole)
If Thay Is Nothing Then
5 MsgBox ("khong thay"), , "GPE.COM Xin Chào!"
Else
7 wS.Cells(Thay.Row, 3).Value = Me!txtName.Value
End If
Err_: Exit Sub
LoiCT:
MsgBox Erl, , Error()
Resume Err_
End Sub
Với ống khóa trên (chỉ gồm 26 kí tự & chục kí số) thì chưa thể mã hóa được macro mà bạn iêu cầu;
Lí do là trong macro còn có những kí tự mà trong ống khóa chưa có, như dấu fẩy, dấu hai chấm, dấu bằng, . . . .
Về nguyên tắc, thì tất cả các kí tự xài trong macro sẽ fải có/chứa trong khóa.
& sau đây xin giới thiệu thêm với những ai có nhu cầu mã hóa những đoạn văn đơn giản vài ba ống khóa đơn giản nhất, chỉ gồm 1 dòng
Giả dụ chúng ta có chuỗi 36 kí tự & chục kí số như sau:
Option Explicit
Const Khoa As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Const FC As String = "FJWZ"
Function TaoKhoa(Keys As String, Optional Kh0 As String = Khoa) As String
Dim Kh As String * 36, KTr As String
Dim J As Byte, VTr As Byte
Keys = UCase$(Keys)
For J = 1 To Len(Keys) - 1
Kh0 = Replace(Kh0, Mid(Keys, J, 1), "")
Next J
VTr = InStr(Kh0, Right(Keys, 1))
TaoKhoa = Keys & Mid(Kh0, VTr + 1, 35) & Left(Kh0, VTr - 1)
End Function
& đây là hàm tự tạo để mã hóa 1 đoạn văn bản với chìa khóa tự đề ra:
PHP:
Option Explicit
Const Khoa As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Const FC As String = "FJWZ"
Function MaHoa(StrC As String, ChiaKhoa As String) As String
Dim ChuoiMa As String, KT As String
Dim J As Integer, VTr As Byte, Dem As Byte
ChuoiMa = TaoKhoa(UCase$(ChiaKhoa))
StrC = UCase$(StrC)
MaHoa = Space(Len(StrC))
For J = 1 To Len(StrC)
KT = Mid(StrC, J, 1)
If KT <> " " Then
VTr = InStr(Khoa, KT)
Else
Dem = Dem + 1
If Dem > 4 Then Dem = 1
VTr = InStr(Khoa, Mid(FC, Dem, 1))
End If
Mid(MaHoa, J, 1) = Mid(ChuoiMa, VTr, 1)
Next J
End Function
Còn đây là hàm dùng để giải mã đoạn văn bản đã mã hóa theo chìa khóa
PHP:
Function GiaiMa(StrC As String, ChiaKhoa As String) As String
Dim ChuoiMa As String, KT As String, Sp As String
Dim J As Integer, VTr As Byte
ChuoiMa = TaoKhoa(UCase$(ChiaKhoa))
GiaiMa = Space(Len(StrC)) 'Theo Khuyén Cáo Cua VetMini!'
For J = 1 To Len(StrC)
KT = Mid(StrC, J, 1)
VTr = InStr(ChuoiMa, KT)
Sp = Mid(Khoa, VTr, 1)
If InStr(FC, Sp) Then
Mid(GiaiMa, J, 1) = " "
Else
Mid(GiaiMa, J, 1) = Mid(Khoa, VTr, 1)
End If
Next J
End Function
Phiền bạn code giúp 1 code để có thể mã hóa được code sau theo phương án trên với.
PHP:
Option Explicit
Sub tim()
'Tìm Dòng & Chèn Vào Dòng Tìm Duoc'
Dim Thay As Range, wS As Worksheet
Dim GT As Integer
On Error GoTo LoiCT
1 Set wS = Sheets("Info")
GT = Me!cmbRoom.Value
3 Set Thay = wS.Columns("B:B").Find(what:=GT, LookIn:=xlValues, lookat:=xlWhole)
If Thay Is Nothing Then
5 MsgBox ("khong thay"), , "GPE.COM Xin Chào!"
Else
7 wS.Cells(Thay.Row, 3).Value = Me!txtName.Value
End If
Err_: Exit Sub
LoiCT:
MsgBox Erl, , Error()
Resume Err_
End Sub
Bạn có thể copy đoạn mã đó lên các dòng của trang tính có tên là 'Macro' & chạy code này:
PHP:
Option Explicit
Sub MaHoaMacro()
Dim J As Long, Rws As Long, W As Integer, Tmp As Byte
Dim Chu As String, KQ As String
Sheets("Macro").Select
Rws = [A999].End(xlUp).Row
ReDim Arr(1 To Rws, 1 To 1) As String
For J = 1 To Rws
Chu = UCase$(Trim$(Cells(J, "A").Value))
For W = 1 To Len(Chu)
Tmp = Asc(Mid(Chu, W, 1))
If Tmp > 99 Then
KQ = KQ & " "
Else
KQ = KQ & CStr(Tmp)
End If
Next W
Arr(J, 1) = KQ: KQ = ""
Next J
[i1].Resize(Rws).Value = Arr()
End Sub
Bạn trẻ chờ chút, sau khi tôi chạy sub MaHoaMacro thì được kết quả sau:
. . . . .
sau đó tôi copy kết quả trên vào cửa sổ Macro thì nó lỗi đỏ lòm.
zị phải làm sao?