void Log()//giải mã và nạp dữ liệu { WindowsForm.Loading2.Show(this); byte[] pass = AdvancedEncryptionStandard.Hash(password); //chuyển pass sang hashcode string str = AdvancedEncryptionStandard.Decoding(Encoding.Default.GetBytes(node.Name), pass); //giải mã if (NetworkNodes.CheckPassword(str)) //kiểm tra nếu đúng thì... { node.Name = str.Substring(NetworkNodes.checkingCode.Length); //loại bỏ đoạn mã dùng để nhận biết nhập đúng pâss trong str try { //giải mã và nạp các nodes con NetworkNodes.Create(node, AdvancedEncryptionStandard.Decoding(Encoding.Default.GetBytes(((Tag_of_Node)node.Tag).nodes), pass)); } catch (Exception ex) { WindowsForm.Loading2.End(); WindowsForm.Notification.Show(MessageBoxButtons.OK, "Can not create a TreeNode from the string!", ex, this); returner = true; panel1.MouseMove -= panel1_MouseMove; Hide(); return; } WindowsForm.Loading2.End(); ((Tag_of_Node)node.Tag).password = pass; ((Tag_of_Node)node.Tag).unlocked = true; ((Tag_of_Node)node.Tag).nodes = null; returner = true; panel1.MouseMove -= panel1_MouseMove; Hide(); } else { WindowsForm.Loading2.End(); WindowsForm.Notification.Show(MessageBoxButtons.OK, "Wrong!", this); textBoxPassword.Text = ""; } }