小编Obl*_*age的帖子

System.Security.Cryptography.CryptographicException:keyset不存在

当我将x509证书发送到encypt和decypt消息时,我收到了一些错误信息,无法解决此问题.有人会发生什么事来解决这个错误吗?谢谢.

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

例外细节:

System.Security.Cryptography.CryptographicException:keyset不存在.

来源错误:

第53行:使用(RSACryptoServiceProvider rsaProviderDecrypt =(RSACryptoServiceProvider)cerDecrypt.PublicKey.Key)第54行:
{第55行:plainHashBytes = rsaProviderDecrypt.Decrypt(encryptedHashBytes,false); 第56行:
rsaProviderDecrypt.Clear(); 第57行:
rsaProviderDecrypt.Dispose();

源文件:E:\ PayUSite\PayMvcApp\Controllers\HashMessageController.cs行:55

堆栈跟踪:

[CryptographicException:keyset不存在.]
System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)+41
System.Security.Cryptography.RSACryptoServiceProvider.DecryptKey(SafeKeyHandle pKeyContext,Byte [] pbEncryptedKey,Int32 cbEncryptedKey,Boolean fOAEP,ObjectHandleOnStack ohRetDecryptedKey)+0
System.Security.Cryptography .RSACryptoServiceProvider.Decrypt(Byte [] rgb,Boolean fOAEP)+579

源代码:

string docFile = Server.MapPath("~/docx/DirectAccess_StepByStep.doc");
HashAlgorithm hash = HashAlgorithm.Create("SHA1");
byte[] hashedBytes;
using (FileStream fs = new FileStream(docFile, FileMode.Open))
{
    //compute message hash value
    hashedBytes = hash.ComputeHash(fs);
    hash.Dispose();
    fs.Close();
}

string hashedString = Convert.ToBase64String(hashedBytes);

//encrypt message digest
string priKeyFile = Server.MapPath("~/certificate/WosMiddle.pfx");
X509Certificate2 certEncrypt = new X509Certificate2(priKeyFile, "123456");
byte[] …
Run Code Online (Sandbox Code Playgroud)

c# x509certificate

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

测试和规格有什么区别?

我决定试用MiniTest并很快注意到它支持了一些名为"specs"的东西.我之前看过这些引用,但认为它只是与工厂相关的备用测试语法,但如果是这种情况那么为什么MiniTest需要同时支持它们呢?

当我学习Ruby on Rails时,我们只讨论过测试,所以我对规格一无所知.当我谷歌规格时,我发现很多关于如何写出好的东西,但没有解释它们什么.测试和规格有什么区别?

automated-tests unit-testing ruby-on-rails

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

python多处理:一些函数在完成时不返回(队列材料太大)

我正在使用多处理的进程和队列.我并行启动了几个函数,大多数表现得很好:它们完成后,它们的输出转到它们的Queue,它们显示为.is_alive()== False.但由于某种原因,一些功能不起作用.它们总是显示.is_alive()== True,即使在函数的最后一行(一个打印语句说"已完成")完成之后.无论我发布的功能集是什么,都会发生这种情况,即使它只有一个.如果不是并行运行,则函数表现良好并正常返回.什么样的事情可能是什么问题?

这是我用来管理作业的通用功能.我没有展示的是我传递给它的功能.它们很长,经常使用matplotlib,有时会启动一些shell命令,但我无法弄清楚失败的是什么共同点.

def  runFunctionsInParallel(listOf_FuncAndArgLists):
    """
    Take a list of lists like [function, arg1, arg2, ...]. Run those functions in parallel, wait for them all to finish, and return the list of their return values, in order.   
    """
    from multiprocessing import Process, Queue

    def storeOutputFFF(fff,theArgs,que): #add a argument to function for assigning a queue
        print 'MULTIPROCESSING: Launching %s in parallel '%fff.func_name
        que.put(fff(*theArgs)) #we're putting return value into queue
        print 'MULTIPROCESSING: Finished %s in parallel! '%fff.func_name
        # We …
Run Code Online (Sandbox Code Playgroud)

python queue multiprocessing

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

当要求取消时,我应该选择投掷还是退货?

考虑以下两种通过 处理取消的方法CancellationToken

public async Task DoAllAvailableWork(CancellationToken cancelToken)
{
    foreach (var job in GetAllAvailableWork())
    {
        await job.Process();

        if (cancelToken.IsCancellationRequested())
            return;
    }
}

public async Task DoAllAvailableWork(CancellationToken cancelToken)
{
    foreach (var job in GetAllAvailableWork())
    {
        await job.Process();

        cancelToken.ThrowIfCancellationRequested();
    }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下job.Process(),正在执行一些原子工作,一旦开始就不应该或无法停止,因此它不接受CancellationToken.

是否有任何理由更喜欢其中一种方法而不是另一种?如果是,应该首选哪种方法?

检查IsCancellationRequested()和返回对我来说感觉更干净,因为抛出意味着出了问题,而取消是我们明确计划处理的情况(这就是我们接受的原因CancellationToken)。另一方面,调用者不一定知道我们将采取哪种方法,因此无论OperationCancelledException我们选择哪个选项,他们都必须设置一个 try/catch。

c# cancellation async-await cancellation-token

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

如何为控件的嵌套属性创建数据绑定?

考虑以下:

public interface IHaveProperties
{
    public MyProperties Properties { get; set; }
}

public class MyControlA : SomeWinFormsControl, IHaveProperties { ... }

public class MyControlB : SomeOtherWinFormsControl, IHaveProperties { ... }

public class MyProperties
{
    public int Foo { get; set; }
    public string Bar { get; set; }
    public double Baz { get; set; }
    ...
}
Run Code Online (Sandbox Code Playgroud)

这允许我们向许多我们无法修改其基类的不同控件添加相同的附加属性,以及保存/加载属性集。

现在我们有大约十几个不同的 MyControlX,我们意识到能够将数据绑定到,例如,Properties.Bar.

显然我们可以这样做:

public interface IHaveProperties
{
    public MyProperties Properties { get; set; }
    public string Bar …
Run Code Online (Sandbox Code Playgroud)

c# data-binding winforms

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

套接字UDP:使用Sendto()中Recvfrom()的发件人信息失败

我正在尝试编写一个通过UDP接收查询并通过UDP发送响应的服务器.我遇到的问题是,当我尝试发送响应时,我收到"101网络无法访问"错误.

根据这里的问题,我尝试通过取出hints.ai_flags = AI_PASSIVE;线来解决这个问题,但是服务器从未成功获取消息.我查看了手册页,addrinfo听起来好像AI_PASSIVE是设置了标志,套接字只能recvfrom(),而如果没有设置,套接字只能sendto().我在网上看过很多例子,人们从一个插槽中做两件事; 我错过了什么?

相关代码:

struct addrinfo hints;
struct addrinfo *serverinfo;
memset(&hints,0,sizeof hints);
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_DGRAM;
hints.ai_flags = AI_PASSIVE;

int status = getaddrinfo(NULL, port, &hints, &serverinfo);
int sock = socket(serverinfo->ai_family, serverinfo->ai_socktype, serverinfo->ai_protocol);
status = bind(sock, serverinfo->ai_addr, serverinfo->ai_addrlen);
freeaddrinfo(serverinfo);

// poll until there's an incoming packet

struct sockaddr sender;
socklen_t sendsize = sizeof(sender);
bzero(&sender, sizeof(sender));

recvfrom(sock, message, sizeof(message), 0, &sender, &sendsize);

// message …
Run Code Online (Sandbox Code Playgroud)

c sockets udp

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

Java Math.atan()为某些输入返回0?

java Math.atan()函数是否有任何问题?我在我的代码中使用它,并且由于一些奇怪的原因我无法解决,函数将返回0表示45度运动,跳转到45并保持在45直到它达到63.4度,它开始正确映射,直到它达到-63.4度并且问题重复.我很困惑!我已经三次检查我的输入始终是正确的,但问题又重现了!

这是我的代码

int adjacent = p2.x - p1.x;
if (adjacent == 0) adjacent = 1; //Prevent division by 0
int opposite = p2.y - p1.y;
double pheta = Math.atan(opposite/adjacent);
System.out.println(opposite + "/" + adjacent + ", pheta=" + Math.toDegrees(pheta));
Run Code Online (Sandbox Code Playgroud)

这是关于测试数据的一些打印输出

73/102, angle=0.0
73/101, angle=0.0
74/100, angle=0.0
74/99, angle=0.0
75/99, angle=0.0
76/97, angle=0.0
76/96, angle=0.0
77/95, angle=0.0
78/95, angle=0.0
78/94, angle=0.0
79/92, angle=0.0
80/91, angle=0.0
81/90, angle=0.0
81/89, angle=0.0
82/87, angle=0.0
83/86, angle=0.0
84/85, angle=0.0
84/84, angle=45.0
84/83, angle=45.0
85/83, …
Run Code Online (Sandbox Code Playgroud)

java math

3
推荐指数
1
解决办法
1884
查看次数

Python子/父类,子类返回字符串两次?

简单的问题,对你们中的一个人来说可能非常明显,但我不确定为什么会这样.所以这里是我制作的三个python文件.

主要Char类:

class Character():
    """
    This is the main parents class for creation of
    characters, be they player, NPC or monsters they
    shall all share common traits
    """

    def __init__(self, name, health, defense):
        """Constructor for Character"""
        self.name = name
        self.health = health
        self.defense = defense
Run Code Online (Sandbox Code Playgroud)

玩家类:

from character import *

class Player(Character):
    """
    The player class is where heros are made
    They inherit common traits from the Character class
    """

    def __init__(self, name, health, defense, str, int):
        Character.__init__(self, name, health, …
Run Code Online (Sandbox Code Playgroud)

python string parent-child

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

Fork、共享变量和处理僵尸进程

我正在为一些需要分叉的作业编写程序,但我对共享变量和处理僵尸进程有点不清楚。

  1. 如果我有全局变量,父级和所有子级是否使用这些全局变量的相同“副本”?如果没有,有什么方法可以让他们(vfork?)?

  2. 我知道僵尸进程是什么,但我不清楚如何摆脱它们。我的程序将分拆出许多临时进程,所以我不知道我可以wait()单独处理它们中的每一个。当父进程终止时,它会摆脱所有与之相关的僵尸,对吗?如果父级在子级之前终止怎么办?完成后孩子会留下僵尸init()吗(这些僵尸会定期清除吗)?

  3. 可能完全回避问题 2,因为我实际上并不关心子进程的结果,有没有办法让它们根本不留下僵尸?我看到了一些关于signal(SIGCHLD, SIG_IGN)但我不确定如何使用它的内容,而且我发现它的联机帮助页有点迟钝。

c fork zombie-process

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

地图生成算法

我目前正在使用C#Xna进行游戏,该游戏使用(X,Y,Z)坐标.每个单元,包含有关放置在该位置的内容的一些信息,如泥土,岩石或什么都没有.但我是3D游戏开发的新手,我需要一些3D地图生成算法的想法.我想过插值或perlin噪音,但如果有人会有一些关于哪些模式可以遵循的例子或想法,我将不胜感激.我的意思是,首先你会做perlin噪音,然后你会做插值,等等.源代码也将受到赞赏:)

c# algorithm maps xna

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