如何限制只有类/命名空间访问的公共函数?

时间:2016-02-06 21:28:52

标签: php class namespaces

在为我的项目开发一个小型数据库包装器时,我想限制访问一个函数 此限制应该阻止插件 - 驻留在不同的命名空间中,但能够通过设计访问此包装器 - 执行该功能。

这怎么可能?

1 个答案:

答案 0 :(得分:0)

我在这里回答我自己的问题。如果您有其他建议,请随时改进!

虽然不能通过PHP内部直接限制此表单的访问。该功能可以保护'本身。
这是通过利用string text = "some text" SHA1 sha1 = SHA1CryptoServiceProvider.Create(); Byte[] textToBytes = //ASCIIEncoding.Default.GetBytes(texto); UTF8Encoding.UTF8.GetBytes(text); Byte[] hash = sha1.ComputeHash(textToBytes); //Path to the certificate file. string sFile = @"C:\myCer.cer"; //Get the bytes array. byte[] byteCer = File.ReadAllBytes(sFile); //Create the certificate with bytes and the password. X509Certificate2 myCert2 = new X509Certificate2(byteCer, "Password", X509KeyStorageFlags.MachineKeySet); byte[] Encrypted = rsa1.Encrypt(hash, true); string cypherText = Convert.ToBase64String(Encrypted); RSACryptoServiceProvider RSA = (RSACryptoServiceProvider)myCert2.PrivateKey;//I get the privateKey as null. RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA); RSAFormatter.SetHashAlgorithm("SHA1"); byte[] SignedHashValue = RSAFormatter.CreateSignature(hash); 获取有关调用者的信息并评估其名称空间和/或类来完成的。

一个例子:

SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss"); 
Date date = new Date();
String fileName = dt.format(date);