标签: securestring

SecureString到Byte [] C#

我怎样才能获得byte[]相当于a SecureString(我从中得到的PasswordBox)?

我的目标是使用a将这些字节写入CryptoStream文件,并且Write该类的方法接受byte[]输入,因此我想将其转换SecureStringbyte[]所以我可以使用a CryptoStream.

编辑:我不想使用,string因为它打败了一个点SecureString

c# encryption wpf securestring

8
推荐指数
2
解决办法
6218
查看次数

WebActivity的安全ADF v2管道参数字符串

我有一个带有WebActivity的ADF v2 Pipeline,它有一个REST Post调用来从AD令牌api获取Jwt访问令牌(https://login.microsoftonline.com/myorg.onmicrosoft.com/oauth2/token)

我必须在正文中传递用户名和密码.现在,我正在使用管道参数来传递这些请求,并且工作正常.

username=@{pipeline().parameters.username}
&password=@{pipeline().parameters.password}
Run Code Online (Sandbox Code Playgroud)

但是,参数选项卡有纯文本,我必须保证.

在此输入图像描述

现在,我有什么选择来保护我在这个管道中使用的参数值而不是纯文本.

我已经探讨了这篇文章https://docs.microsoft.com/en-us/azure/data-factory/store-credentials-in-key-vault#reference-secret-stored-in-key-vault 但是,这是存储数据存储的秘密.在我的网络活动中,我没有任何数据集.它只是一个休息电话的网络活动.

任何帮助或指示将不胜感激.谢谢

securestring azure-data-factory azure-keyvault azure-data-factory-2

8
推荐指数
1
解决办法
586
查看次数

如何使用从链接的 ARM 模板返回的 secureObject 或 securestring

如何使用返回的值securestringsecureObject从链接的 ARM 模板返回的值?

例如,一个子链接模板名为CreateStorage

  1. 创建 Azure 存储帐户
  2. 在该帐户上创建 blob 容器
  3. 为容器创建 SAS 密钥
  4. 返回模板部分中的 SAS 密钥outputs

例如,在模板输出中返回 SAS:

"outputs": {
    "createdContainerSas": {
        "type": "string",
        "value": "[concat('https://', variables('storageAccountName'), '.blob.core.windows.net/', variables('containerName'), '?', listServiceSas(variables('storageAccountName'), '2018-07-01', variables('importSasInputs')).serviceSasToken)]"
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,主模板会将 SAS 密钥添加到 KeyVault,以便应用程序的其余部分可以使用它。主模板获取值如下:

"value": "[reference('CreateStorage').outputs.createdContainerSas.value]"
Run Code Online (Sandbox Code Playgroud)

问题在于,当前返回的 SAS 密钥意味着string它在 Azure 部署 UI 中以纯文本形式显示。

但是,当我将返回对象的类型更改为 orsecurestringsecureObject,然后createdContainerSas.value调用时,会遇到以下错误:

{\r\n \"code\": \"InvalidTemplate\",\r\n \"message\": \"Unable to process template language expressions for resource '/subscriptions/<my-subscription-id>/resourceGroups/<my-resource-group>/providers/Microsoft.Resources/deployments/CreateKeyVault' at line …
Run Code Online (Sandbox Code Playgroud)

securestring azure azure-rm-template

8
推荐指数
1
解决办法
4922
查看次数

保存SecureString

我正在处理的程序的一个功能请求是能够保存用户输入的凭据列表,以便可以共享它们.启发此请求的特定用例是在大型企业网络上使用我们的程序,该网络由相当好的LAN组成,这些LAN通过片状WAN连接.我们的想法是,不是让我们的程序在WAN关闭时击败WAN,而是发送一个包含严密保护的管理员凭据的"配置"文件,在每个局域网中运行并压缩结果并通过电子邮件发送给它背部.

是啊.

我最初的本能是嘲笑这个请求 - 保存密码?真?当然,公司的网络部门更愿意尝试销售他们拥有的任何广域网产品 - 但事实证明我使用凭证的其中一个类可以采用SecureString,而且,总是很好的关注你可以节省一些人的努力.这让我想知道:

是否可以保存加密的SecureString,以便我可以将敏感数据保存到文件中并在其他地方打开?

您有什么想法,Stack Overflow?

.net securestring

7
推荐指数
2
解决办法
1万
查看次数

C#:向用户询问密码,然后将密码存储在SecureString中

在我正在为客户开发的小应用程序中,我需要询问用户他的Windows登录用户名,密码和域,然后使用System.Diagnostics.Process.Start启动应用程序.

我有一个带有UseSystemPasswordChar的文本框来屏蔽输入的密码.

我需要一个System.Security.SecureString来将密码提供给System.Diagnostics.Process.Start.

如何将输入的文本转换为安全字符串而不是一个又一个字符?或者:是否有更好的窗口控件要求用户输入密码,将输入的文本作为SecureString返回?

.net c# passwords securestring

7
推荐指数
1
解决办法
5307
查看次数

使用securestring进行sql连接

我想使用SecureString来保存数据库的连接字符串.但是,只要我将SqlConnection对象的ConnectionString属性设置为securestring的值,它肯定会对能够读取应用程序内存的任何其他应用程序可见吗?

我做了以下假设:
a)我无法在托管内存之外实例化SqlConnection对象
b)托管内存中的任何字符串都可以被Hawkeye等应用程序读取

.net c# securestring

7
推荐指数
2
解决办法
9173
查看次数

SecureString密码存储在数据库中

我相信我误解了一个基本部分SecureString.我知道这string是不可变的,并且在堆上找到密码或敏感数据作为明文.

我正在努力理解的是,如何SecureString在需要验证数据库中哈希密码的客户端应用程序中使用?

这是我的背景:

  • 我正在使用WPF客户端应用程序.
  • 我有一个本地SQL数据库(在客户端的机器上)
  • 密码经过哈希处理并存储在数据库中.
  • 用户尝试登录到我的WPF应用程序
  • PasswordBox控件SecureString通过SecurePassword属性将密码存储在a中.

怎么办?如何SecureString首先将WITHOUT重新转换为字符串?

到目前为止我收到的所有建议都是编写扩展方法转换SecureStringString,哈希,然后将其发送到db进行验证.但这打败了整个演习!

我必须接受SecureString在我提到的上下文中没用的东西并使用普通的string吗?

c# sql-server wpf hash securestring

7
推荐指数
1
解决办法
4679
查看次数

如何解密通过PowerShell加密的C#中的字符串

是否可以解密通过PowerShell加密的C#中的字符串以及如何?

该字符串通过PowerShell加密,如下所示:

$pw = read-host "Enter Password" –AsSecureString

ConvertFrom-SecureString $pw | out-file "C:\file.txt"
Run Code Online (Sandbox Code Playgroud)

要使用PowerShell将其转换回来,我可以使用这些调用C#类的命令System.Runtime.InteropServices.Marshal.

$pwdSec = Get-Content "C:\file.txt" | ConvertTo-SecureString

$bPswd = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pwdSec)

$pswd = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($bPswd)
Run Code Online (Sandbox Code Playgroud)

文件包含已转换为加密标准的字符串string("hello").

因此,如果打开file.txt文件,它看起来类似于:

01000000d08c9ddf0115d1118c7a00c04fc297eb0100000052ded6c2db80e748933432e19b9de8b10000
000002000000000003660000c00000001000000016dc35885d76d07bab289eb9927cfc1e000000000480
0000a0000000100000003106cde553f45b08d13d89d11336170b280000005cc865c1ee1b57e84ed3d1a2
d3f2d0ec0f189b532e61c18d1f31444d6f119a1e8368477fd2d81f54140000000cb0262e58b08ae14f37
22c14c69684841b6b21c
Run Code Online (Sandbox Code Playgroud)

.net c# encryption powershell securestring

7
推荐指数
1
解决办法
2363
查看次数

在持久环境变量中保存安全字符串

所以我想为本地用户保存一个安全的字符串变量类型。这样我就可以运行 Convertfrom-securestring 在 .ps1 文件中进行其余 api 调用,而无需访问密码。我正在尝试的可能吗?

我正在使用的代码如下,但尚未运行:

$PlainPassword = "atestpassword"
$SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText -Force
[Environment]::SetEnvironmentVariable('JiraCreds', $SecurePassword, "User")
Run Code Online (Sandbox Code Playgroud)

环境变量是否只保存为字符串而不支持其他数据类型?

variables powershell securestring

7
推荐指数
1
解决办法
3189
查看次数

将SecureString与LogonUser一起使用

出于学习目的,我正在编写自己的Active Directory客户端.为了执行解锁帐户和重置密码等命令,我必须输入管理员帐户和密码,并使用并WindowsIdentity.Impersonate运行代码作为我的管理员帐户.我想知道我保护密码的选项,因为它必须在我的程序中多次使用.

据我所知,我可以SecureString用来存储密码.但是为了运行代码作为我的管理员帐户,我已经使用了WindowsIdentity.Impersonate,并且要使用我必须得到一个令牌,LogonUser从中需要常规string而不是SecureString.

所以我必须:

  1. 在启动时登录

  2. 将输入转换为 SecureString

  3. 清除输入

然后,当我想要执行需要提升的函数时:

  1. 将先前创建的转换SecureStringstring

  2. 将转换后的字符串传递给 LogonUser

  3. 清除转换字符串 null

  4. 执行命令

  5. 清除LogonUser对象

这是接近这个的正确方法吗?这似乎不可思议必须有转换的SecureStringstring使用它...好像它会破坏的目的,并留下密码更容易,而我将它转换.

编辑:修复了LogonUser的名称

.net c# security securestring

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