我可以让普通用户无法读取txt文件,但仍然有程序可以访问它吗?

问题描述 投票:0回答:1

我的问题是我是否有一个非管理员用户可以启动的 C# 应用程序并且该应用程序从文件中读取。有没有办法让程序可以读取它,但用户不能直接打开它? 我猜如果我让文件需要管理员权限,程序也将无法读取它。

admin privileges
1个回答
0
投票

您可以尝试加密,并制作自己的加密方式,与常见的加密算法(如 AES 或 RSA)不同。

当然,它们是标准并且相当不错,但是如果您真的希望任何(非管理员特权用户)不访问文件的内容,您可以尝试制作自己的加密方式,密码是一种更简单的加密形式,并且更容易实施,示例如下;

The quick brown fox jumps over the lazy dog

我们可以将每个字母移至下一个字母;

Uif rvjdl cspxo gpy kvnqt pwfs uif mbaz eph

C#代码如下;

static string Encrypt(string plaintext)
{
    string ciphertext = "";
    foreach (char c in plaintext)
    {
        if (char.IsLetter(c))
        {
            char shifted = (char)(c + 1); // shifting each letter by one
            if ((char.IsLower(c) && shifted > 'z') || (char.IsUpper(c) && shifted > 'Z'))
            {
                shifted = (char)(c - 25); // Here we make sure if we have the letter z, we can make sure it goes to letter a, without any errors
            }
            ciphertext += shifted;
        }
        else
        {
            ciphertext += c; // Keep non-letter characters unchanged
        }
    }
    return ciphertext;
}

static void Main()
{
    string plaintext = "The quick brown fox jumps over the lazy dog";
    string encryptedText = Encrypt(plaintext);
    Console.WriteLine("Encrypted text: " + encryptedText);
}

//Your basic Caeser Cipher (for shifting by 1 letter)

(重要提示:这只适用于 .txt 文件(文本文件),不适用于除此之外的任何文件,当然它可能“有效”,但它不会是一种正确的加密方式,因为某些非字母字符不会被加密)

(解密任何加密文本的代码)

static string Decrypt(string ciphertext)
{
    string plaintext = "";
    foreach (char c in ciphertext)
    {
        if (char.IsLetter(c))
        {
            char shifted = (char)(c - 1); // reverse the shift by one
            if ((char.IsLower(c) && shifted < 'a') || (char.IsUpper(c) && shifted < 'A'))
            {
                shifted = (char)(c + 25); // again wrapping around incase
            }
            plaintext += shifted;
        }
        else
        {
            plaintext += c; // keeping non-letter characters unchanged
        }
    }
    return plaintext;
}
© www.soinside.com 2019 - 2024. All rights reserved.