小编Laz*_*zlo的帖子

"坏键." 使用RSACryptoServiceProvider解密时的异常(C#.NET)

我试图解密先前在RSA中加密的数据(别担心,我应该能够,我有钥匙.没有什么非法:).

但是,我得到了一个"坏键".解密线上的错误.我确定这个关键是正确的,因为我从矢量中取出它.矢量在以下代码中提供.从理论上讲,我有解密的所有信息,虽然它不起作用.我认为它可能是一种解密的.NET方式,我还不明白.

这是代码:

    static void Main(string[] args)
    {
        byte[] N = // Modulus
        {
            0x00, 0x8C, 0x35, 0x04, 0xC8, 0x40, 0xB3, 0x67, 0xD8, 0x42, 0x35, 0x78, 0xF6, 0x2A, 0x02, 0xBE,
            0xF7, 0x1C, 0xCD, 0x9D, 0x98, 0x55, 0x16, 0x3F, 0x81, 0xA4, 0xE5, 0x3E, 0x3D, 0x38, 0x27, 0xEE,
            0x0D, 0x8B, 0xAF, 0xB0, 0xBB, 0xBA, 0xA4, 0xE1, 0xF2, 0xB6, 0x79, 0x92, 0x5B, 0x72, 0xBA, 0xC8,
            0xD7, 0x63, 0xA9, 0x60, 0x17, 0xB1, 0x34, 0xF1, 0xA9, 0xE3, 0x46, 0x67, 0xB8, 0x06, 0x9A, 0xCD,
            0x59, 0x95, …
Run Code Online (Sandbox Code Playgroud)

.net c# rsa rsacryptoserviceprovider

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

C#中"half"(binary16)的类型是什么?

我在隐含nVidia GPU的环境中工作,这导致我使用"half"(binary16,低精度浮点数)类型.但是,我不知道它在C#中转换为哪种类型.任何的想法?

http://en.wikipedia.org/wiki/Half_precision_floating-point_format

c# value-type

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

C#会从聚合结构/类中受益吗?

前言

tl; wr:这是一个讨论.

我知道这个"问题"更多的是讨论,因此我将其标记为社区维基.但是,根据" 如何询问"页面,它可能属于此处,因为它具体与编程相关,经过一个小时的研究后无法在网络上讨论,具体而言,与大多数C#程序员和主题相关.而且,这个问题本身就是为了获得答案,不管我的偏见,我都会保持开放的态度:C#真的会从总体结构中受益吗?尽管有这一前言,但我知道这是关闭的,但如果有权限和意图关闭的用户将我重定向到Web上的适当讨论点,我将不胜感激.


介绍


缺乏结构可变性

结构是C#中的灵活但有争议的类型.它们提供堆栈分配的值类型组织范例,但不提供其他值类型的不变性.

有人说结构应该代表值,而值不会改变(例如int i = 5;,5是不可变的),而有些人认为它们是带有子字段的OOP布局.

上结构不变性(辩论1,2,3),为此,当前的解决方案似乎具有程序员执行不变性,也没有解决.

例如,当结构作为引用(本页底部)访问并限制赋值时,C#编译器将检测可能的数据丢失.此外,由于结构构造函数,属性和函数能够执行任何操作,在返回控件之前使用限制(对于构造函数)分配所有字段,结构不能声明为常量,如果它们仅限于数据表示.


不可变的结构子集,聚合

聚合类(维基百科)是严格的数据结构,功能有限,注定会因缺乏灵活性而在对应方面提供语法糖.在C++中,它们"没有用户声明的构造函数,没有私有或受保护的非静态数据成员,没有基类,也没有虚函数".尽管核心概念保持不变,但C#中此类类别的理论细节仍可供讨论.

由于聚合结构是严格的带有标记访问器的数据持有者,因此它们的不变性(在可能的C#环境中)将被保险.除非?指定了null运算符(),否则聚合也无法为空,无其他纯值类型.出于这个原因,许多非法的结构操作将成为可能,以及一些语法糖.


用途


  1. 聚合可以声明为const,因为它们的构造函数将被强制除了分配字段之外什么都不做.
  2. 聚合可以用作方法参数的默认值.
  3. 聚合可以是隐式顺序,促进与本机的交互
  4. 聚合将是不可变的,不会导致参考访问的数据丢失.编译器检测到这些子字段修改可能会导致完整的隐式重新分配.libraries.

假设语法


从C++语法中我们可以想象出以下几点:(记住,这是一个社区维基,欢迎并鼓励改进)

aggregate Size
{
    int Width;
    int Height;
}

aggregate Vector
{
    // Default values for constructor.
    double X = 0, Y = 0, Z = 0;
}

aggregate Color
{
    byte R, G, B, …
Run Code Online (Sandbox Code Playgroud)

c# struct aggregate class

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

泛型和父/子架构

我正在构建一个具有可继承泛型和父子关系的架构.我有一个主要问题:我不能让孩子和父母都知道对方的类型,只有两个中的一个.

我需要孩子和父母都知道彼此的类型.

场景1:父级知道子类型,但子级只知道具有通用子级的通用父级.

public class Child
{
    public Parent<Child> Parent;
}

public class Parent<TChild>
    where TChild : Child
{
    public List<TChild> Children;
}
Run Code Online (Sandbox Code Playgroud)

场景2:Child知道父类型,但父级只知道具有通用父级的通用子级.

public class Child<TParent>
    where TParent : Parent
{
    public TParent Parent;
}

public class Parent
{
    public List<Child<Parent>> Children;
}
Run Code Online (Sandbox Code Playgroud)

场景3:乌托邦但无法实现的场景:

public class Child<TParent>
    where TParent : Parent
{
    public TParent Parent;
}

public class Parent<TChild>
    where TChild : Child
{
    public List<TChild> Children;
}
Run Code Online (Sandbox Code Playgroud)

当然,方案3将不会编译,因为父母和孩子参加第二泛型类型,这将是自己的类型,但我不能(或至少不知道如何!)指定这是他们自己的类型.

我在这里陷入某种无限循环/递归/抛球,请在我淹死之前帮助我.

祝好运.

编辑 …

c# generics parent-child

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

什么是C#"格式化"标准?

在C#(.NET)中,常规的"格式化"标准是什么?

例如,对于参数名称,到目前为止我注意到没有前缀的camelCase,是吗?对于对象名称,camelCase也没有前缀,对吧?

对于名称空间,类,函数和属性,单词的首字母大写且没有前缀,这是否正确(再次)?

"临时"对象是如何格式化的?

例:

namespace TestNamespace
{
    class MyOwnCoolClass
    {
        MyOwnCoolClass(int length, BinaryWriter writer)
        {
            BinaryWriter tempbw = new BinaryWriter(length);
            return tempbw;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

(注意:此代码无效,我知道,这只是为了演示格式化).谢谢!

.net c# formatting standards

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

如何在适合PHP SHA512的C#中重现SHA512哈希?

这个问题几乎是不言自明的.我用Google搜索了许多网站,很多方法,尝试了很多编码,但我无法让它匹配.

我正在尝试使字符串"asdasd"匹配.(http://www.fileformat.info/tool/hash.htm?text=asdasd)

.net php c# hash sha512

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

在C#中传递的数组参数:为什么它是通过引用隐式的?

假设以下代码没有任何ref关键字,显然不会替换传递的变量,因为它是作为值传递的.

class ProgramInt
{
    public static void Test(int i) // Pass by Value
    {
        i = 2; // Working on copy.
    }

    static void Main(string[] args)
    {
        int i = 1;
        ProgramInt.Test(i);
        Console.WriteLine(i);
        Console.Read();

        // Output: 1
    }
}
Run Code Online (Sandbox Code Playgroud)

现在让该函数按预期工作,可以ref像往常一样添加关键字:

class ProgramIntRef
{
    public static void Test(ref int i) // Pass by Reference
    {
        i = 2; // Working on reference.
    }

    static void Main(string[] args)
    {
        int i = 1;
        ProgramInt.Test(ref i);
        Console.WriteLine(i);
        Console.Read();

        // …
Run Code Online (Sandbox Code Playgroud)

c# arrays parameter-passing pass-by-reference pass-by-value

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

是Socket.*Async方法是否有线程?

我目前正在尝试确定什么是最小化我在TCP主服务器中使用的线程数量的最佳方法,以便最大限度地提高性能.

我最近在使用C#5.0的新异步功能阅读了很多内容,异步并不一定意味着多线程.它可能意味着在较小的有限状态对象块中分离,然后通过交替处理与其他操作一起处理.但是,我不知道如何在网络中做到这一点,因为我基本上"等待"输入(来自客户端).

因此,我不会对所有套接字使用ReceiveAsync(),它只是连续创建和结束线程(假设它确实创建了线程).

因此,我的问题或多或少:主服务器在没有每个连接一个"线程"的情况下可以采用什么架构?

奖励酷点的一个问题:为什么多线程坏了,考虑到拥有超过处理核心数量的线程数量只会使机器"假"多线程,就像任何其他异步方法一样?

.net c# sockets multithreading asynchronous

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

以不同方法开始和完成锁定

我想 - 由于晦涩的原因,你不应该质疑 - 开始锁定方法,然后在另一个方法中结束.不知何故喜欢:

object mutex = new object();

void Main(string[] args)
{
    lock (mutex)
    {
        doThings();
    }
}
Run Code Online (Sandbox Code Playgroud)

会有如下行为:

object mutex = new object();

void Main(string[] args)
{
    Foo();
    doThings();
    Bar();
}

void Foo()
{
    startLock(mutex);
}

void Bar()
{
    endlock(mutex);
}
Run Code Online (Sandbox Code Playgroud)

当然,问题是lock关键字以块语法工作.我知道锁并不意味着像这样使用,但我不仅仅对S/O的创意和hacky解决方案持开放态度.:)

.net c# parallel-processing multithreading locking

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

在块输出上应用Smarty修改器

我正在尝试将一个修饰符(truncate在我的例子中)应用于块的输出(一个tr块,即一个转换块).我没有tr作为修饰符,因为它不方便HTML标记.

我真的不知道我应该使用什么样的语法,也不知道它是否被允许(给定,我对块的使用可能有点时髦).

如果它有任何意义的话:

{{tr}Really long text I want to be translated then truncated{/tr}|truncate}

php block smarty modifier

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