在为我的项目开发一个小型数据库包装器时,我想限制访问一个函数 此限制应该阻止插件 - 驻留在不同的命名空间中,但能够通过设计访问此包装器 - 执行该功能。
这怎么可能?
答案 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);