小编Mar*_*ond的帖子

在.NET中散列SecureString

在.NET中,我们有SecureString类,在你尝试使用它之前一切都很好,因为(例如)散列字符串,你需要明文.在编写一个将散列SecureString的函数时,我已经开始了,给定一个带有字节数组并输出字节数组的散列函数.

private static byte[] HashSecureString(SecureString ss, Func<byte[], byte[]> hash)
{
    // Convert the SecureString to a BSTR
    IntPtr bstr = Marshal.SecureStringToBSTR(ss);

    // BSTR contains the length of the string in bytes in an
    // Int32 stored in the 4 bytes prior to the BSTR pointer
    int length = Marshal.ReadInt32(bstr, -4);

    // Allocate a byte array to copy the string into
    byte[] bytes = new byte[length];

    // Copy the BSTR to the byte array
    Marshal.Copy(bstr, bytes, 0, length);

    // Immediately destroy …
Run Code Online (Sandbox Code Playgroud)

.net c# securestring password-encryption

24
推荐指数
2
解决办法
5334
查看次数

给定用户名和密码,您如何冒充该用户?

在Windows Vista及更高版本中,LogonUser即使提供的用户是管理员,也会返回非特权令牌.因此,当您模拟使用该令牌时,您不会升级.给定管理员用户的正确用户名和密码,如何运行具有该管理员的提升权限的代码?

c# impersonation elevated-privileges

6
推荐指数
1
解决办法
521
查看次数

GitHub 上的“协作者协会”是什么?

当您删除 GitHub 上的存储库时,会出现以下警告:

这个动作CAN NOT撤消。这将永久删除<repository name>存储库、wiki、问题和评论,并删除所有协作者关联。

我知道“合作者”是有权将等推送到存储库的用户。我猜在这种情况下“删除所有协作者关联”意味着删除存储库时存储库的协作者列表将丢失。但是,在被删除的存储库是另一个存储库的分支的情况下,这意味着什么尚不清楚。

github

6
推荐指数
1
解决办法
310
查看次数

如何判断使用 System.CommandLine 时是否指定了选项?

使用 root 命令:

new RootCommand
{
    new Option<string>("--myoption")
};
Run Code Online (Sandbox Code Playgroud)

你如何区分两者之间的区别

./myapp
Run Code Online (Sandbox Code Playgroud)

./myapp --myoption ""
Run Code Online (Sandbox Code Playgroud)

我最初假设如果未指定该选项将为空,但事实并非如此,它是一个空字符串:(添加显式默认值null也不起作用;""当没有传入选项时,此代码仍然会打印出来:

static void Main(string[] args)
{
    var rootCommand = new RootCommand
    {
        new Option<string>("--myoption", () => null)
    };
    rootCommand.Handler = CommandHandler.Create<string>(Run);
    rootCommand.Invoke(args);
}

private static void Run(string myoption)
{
    Console.WriteLine(myoption == null ? "(null)" : '"' + myoption + '"');
}
Run Code Online (Sandbox Code Playgroud)

如果默认值设置为非空字符串,则默认值确实会按预期显示;onlynull神秘地变成了一个空字符串。

c# command-line-arguments system.commandline

6
推荐指数
1
解决办法
2684
查看次数

是否有类似于SetWindowPos的Linux?

前段时间我在C中编写了一个脚本,它使用Windows API函数EnumWindows,SetWindowPos和SetForegroundWindow来自动排列我常用的特定布局中的窗口(按标题).

这些功能是否有Linux等价物?我将使用Kubuntu,因此特定于KDE和/或Ubuntu的解决方案都可以.

c linux windows

5
推荐指数
2
解决办法
790
查看次数