相关疑难解决方法(0)

我如何使用ConvertTo-SecureString

假设我需要在Powershell中执行此操作:

    $SecurePass = Get-Content $CredPath | ConvertTo-SecureString -Key (1..16)
    [String]$CleartextPass = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($CredPass));
Run Code Online (Sandbox Code Playgroud)

$ CredPath的内容是一个包含ConvertFrom-SecureString -Key(1..16)输出的文件.

如何ConvertTo-SecureString -key (1..16)在C#/ .NET中完成该部分?

我知道如何创建SecureString,但我不确定应该如何处理加密.

我是否使用AES加密每个字符,或者解密字符串然后为每个字符创建一个安全字符串?

我对密码学几乎一无所知,但从我收集的内容中我可能只想使用C#调用Powershell命令.

作为参考,我在这里发现了类似的关于AES加密/解密的帖子: 在C#中使用AES加密

UPDATE

我已经回顾了Keith发布的链接,但我还面临其他未知数.DecryptStringFromBytes_Aes有三个参数:

static string DecryptStringFromBytes_Aes(byte[] cipherText, byte[] Key, byte[] IV)
Run Code Online (Sandbox Code Playgroud)

第一个参数是字节数组表示加密文本.这里的问题是,如何在字节数组中表示字符串?它应该用或不用编码表示?

byte[] ciphertext = Encoding.ASCII.GetBytes(encrypted_text);
byte[] ciphertext = Encoding.UTF8.GetBytes(encrypted_text);
byte[] ciphertext = Encoding.Unicode.GetBytes(encrypted_text);    

byte[] ciphertext = new byte[encrypted_password.Length * sizeof(char)];
System.Buffer.BlockCopy(encrypted_password.ToCharArray(), 0, text, 0, text.Length);
Run Code Online (Sandbox Code Playgroud)

第二个字节数组的键应该只是一个整数数组:

byte[] key = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 };
Run Code Online (Sandbox Code Playgroud)

第三个字节数组是"初始化向量" - 看起来Aes.Create()调用将随机生成一个用于IV的byte [].阅读,我发现我可能需要使用相同的IV.由于ConvertFrom-SecureString和ConvertTo-SecureString能够使用简单的密钥加密/解密,因此我假设IV []可以是随机的 - 或者 - 具有静态定义. …

.net c# encryption powershell aes

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

调用API:如何提供这些参数(键,随机数和签名)

我正在玩实现API.通常这很简单,但这个给我带来了麻烦.但是,我很确定问题是我,而不是API.

此特定API的网址:

https://www.bitstamp.net/api/

我想对"帐户余额"进行POST调用.目前我得到以下答案:

{"error": "Missing key, signature and nonce parameters"}
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码执行此操作:

        var path = "https://www.bitstamp.net/api/user_transactions";
        var nonce = GetNonce();
        var signature = GetSignature(nonce);

        using (WebClient client = new WebClient())
        {

            byte[] response = client.UploadValues(path, new NameValueCollection()
           {
               { "key", Constants.ThirdParty.BitStamp.ApiKey },
               { "signature", signature },
               { "nonce", nonce},

           });
            var str = System.Text.Encoding.Default.GetString(response);
        }

        return 0.0m;
Run Code Online (Sandbox Code Playgroud)

这是我的两个辅助函数:

    private string GetSignature(int nonce)
    {
        string msg = string.Format("{0}{1}{2}", nonce,
            Constants.ThirdParty.BitStamp.ClientId,
            Constants.ThirdParty.BitStamp.ApiKey);

        return HelperFunctions.sign(Constants.ThirdParty.BitStamp.ApiSecret, msg);
    }

    public static int GetNonce() …
Run Code Online (Sandbox Code Playgroud)

c# api post c#-4.0

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

jquery网络摄像头插件不会发布捕获的图像

我在MVC4页面中使用jquery网络摄像头插件.该插件位于:http://www.xarg.org/project/jquery-webcam-plugin/.

我在捕获图像后在插件上使用save方法,但它没有发布到控制器操作.

这是cshtml页面:

@{
    ViewBag.Title = "Index";
}

<!DOCTYPE html>
<html lang="es">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>@ViewBag.Title - Prueba WebCam</title>
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    <meta name="viewport" content="width=device-width" />
    @Styles.Render("~/styles/base")
    @Scripts.Render("~/scripts/jquery", "~/scripts/jqueryui", "~/scripts/webcam")

    <script type="text/javascript">
        $(function () {
            $("#camera").webcam({
                width: 320,
                height: 240,
                mode: "save",
                swffile: "@Url.Content("~/Scripts/WebCam/jscam_canvas_only.swf")",
                onTick: function () { },
                onSave: function () { alert('Almacenamiento realizado') },
                onCapture: function () { webcam.save("@Url.Action("Save")"); alert('Captura realizada'); },
                debug: function …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc-4 jquery-webcam-plugin

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

Crypto.js 使用字节数组中的密钥和 iv(向量)解密

我必须解密一些 AES 加密的字符串。

加密字符串示例:129212143036071008133136215105140171136216244116

我有一个密钥和一个以字节数组格式提供给我的向量 (iv):

关键词: [ 123, 217, 20, 11, 24, 26, 85, 45, 114, 184, 27, 162, 37, 115, 222, 209, 241, 24, 175, 144, 5, 3, 29 , 24, 23, 17, 218, 131, 226, 53, 209 ]

向量 (iv): [ 146, 66, 191, 151, 23, 3, 113, 119, 231, 131, 133, 112, 79, 32, 114, 136 ]

我应该能够解密字符串并得到:

正确的输出:testtest

我正在尝试使用 Crypto.js,但找不到使用提供的密钥和向量的方法。我找不到将字节数组转换为十六进制的方法。

var encrypted = '129212143036071008133136215105140171136216244116';
var key = CryptoJS.enc.Hex.parse([ 123, 217, 20, 11, 24, 26, 85, …
Run Code Online (Sandbox Code Playgroud)

javascript encryption hex bytearray cryptojs

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

如何将二进制文件转换为另一个二进制表示,如图像

我想要一个二进制文件(exe,msi,dll,无论如何),并能够实际"看到"二进制代码或我想要的任何基础(十六进制).想到最简单的方法就是将代码输出到txt中,这样我就可以检查它了.

什么是最好最简单的方法呢?基本上我希望将二进制代码转换为我的项目的图片.

同样,如果我可以采用一些二进制代码,然后将其转换为二进制文件,那将是很好的.

你有什么方法可以做到这一点,我列出了C,C++和C#,因为它们似乎是最快的编程语言,我认为这可能需要一些时间.我想我对C中的答案更感兴趣,但我主要是在寻找这背后的一些逻辑.

c c# c++

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

C#替换Byte []中的字节

替换字节数组中某些字节的最佳方法是什么?

例如,我有bytesFromServer = listener.Receive(ref groupEP);,我可以做到BitConverter.ToString(bytesFromServer)将其转换为可读格式,以返回一些东西

48 65 6c 6c 6f 20 
74 68 65 72 65 20 
68 65 6c 70 66 75 
6c 20 70 65 6f 70 
6c 65   
Run Code Online (Sandbox Code Playgroud)

我想将"68 65 6c"中的内容替换成类似"68 00 00"的内容(仅作为示例).字节[]上没有.Replace().

是否有一种简单的方法将其转换回字节[]?

任何帮助赞赏.谢谢!

c# byte replace

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

用C#用HMAC-MD5签名字符串

我得到了以下HMAC密钥(十六进制格式):

52320e181a481f5e19507a75b3cae4d74d5cfbc328f7f2b738e9fb06b2e05b55b632c1c3d331dcf3baacae8d3000594f839d770f2080910b52b7b8beb3458c08

我需要签名这个字符串:

1100002842850CHF91827364

结果应该是这个(十六进制格式):

2ad2f79111afd818c1dc0916d824b0a1

我有以下代码:

string key = "52320e181a481f5e19507a75b3cae4d74d5cfbc328f7f2b738e9fb06b2e05b55b632c1c3d331dcf3baacae8d3000594f839d770f2080910b52b7b8beb3458c08";
string payload = "1100002842850CHF91827364";

byte[] keyInBytes = Encoding.UTF8.GetBytes(key);
byte[] payloadInBytes = Encoding.UTF8.GetBytes(payload);

var md5 = new HMACMD5(keyInBytes);
byte[] hash = md5.ComputeHash(payloadInBytes);

var result = BitConverter.ToString(hash).Replace("-", string.Empty);
Run Code Online (Sandbox Code Playgroud)

但是,我没有得到结果.我究竟做错了什么?

security hmac c#-4.0

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

将 SHA512 输出转换为字符串时,“指定的值具有无效的控制字符”

我正在尝试为 API 创建哈希。我的输入是这样的:

FBN|网页|3QTC0001|RS1|260214133217|000000131127897656

我的预期输出是这样的:

17361DU87HT56F0O9967E34FDFFDFG7UO3346665324308667FDGJKD66F9888766DFKKJJR466634HH6566734JHJH34766734NMB97634NMB97634353435343434

我尝试了波纹管,但我不断收到“指定的值具有无效的控制字符。参数名称:值”

我实际上是在 REST 服务中这样做的。

public static string GetHash(string text)
{
    string hash = "";
    SHA512 alg = SHA512.Create();
    byte[] result = alg.ComputeHash(Encoding.UTF8.GetBytes(text));
    hash = Encoding.UTF8.GetString(result);        
    return hash;
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

c# hash

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

在C#中将单个十六进制字符转换为其字节值

这会将1个十六进制字符转换为其整数值,但需要构造一个(子)字符串.

Convert.ToInt32(serializedString.Substring(0,1), 16);
Run Code Online (Sandbox Code Playgroud)

.NET是否有内置的方法将单个十六进制字符转换为不涉及创建新字符串的字节(或int,无关紧要)值?

.net c# hex

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

C# 将十六进制值转换为 UTF8 和 ASCII

我正在尝试将字符串中的十六进制值转换为 ASCII 值和 UTF8 值。但是当我执行以下代码时,它会打印出我作为输入给出的相同十六进制值

string hexString = "68656c6c6f2c206d79206e616d6520697320796f752e";
System.Text.UTF8Encoding  encoding=new System.Text.UTF8Encoding();
byte[] dBytes = encoding.GetBytes(hexString);

//To get ASCII value of the hex string.
string ASCIIresult = System.Text.Encoding.ASCII.GetString(dBytes);
MessageBox.Show(ASCIIresult, "Showing value in ASCII");

//To get the UTF8 value of the hex string
string utf8result = System.Text.Encoding.UTF8.GetString(dBytes);
MessageBox.Show(utf8result, "Showing value in UTF8");
Run Code Online (Sandbox Code Playgroud)

c# decode visual-studio-2010

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