问题列表 - 第39231页

Windows CryptoAPI:带有CALG_SHA_256的CryptSignHash和来自MY keystore的私钥

我试图在Windows上生成数字签名(来自XP SP3,但目前正在使用Windows 7进行测试),其中CryptoAPI将与以下openssl命令兼容:

openssl dgst -sha256 -sign <parameters> (for signing)
openssl dgst -sha256 -verify <parameters> (for validation)
Run Code Online (Sandbox Code Playgroud)

我想使用Windows"MY"密钥库中的私钥进行签名.

我设法使用SHA1摘要算法使用以下CryptoAPI函数签署文件(为简洁省略参数):

CertOpenStore
CertFindCertificateInStore
CryptAcquireCertificatePrivateKey
CryptCreateHash (with CALG_SHA1)
CryptHashData
CryptSignHash
Run Code Online (Sandbox Code Playgroud)

生成的签名与"openssl dgst -sha1 -verify"兼容(一旦字节顺序颠倒).

我的问题是:当我尝试将CALG_SHA_256与CryptCreateHash一起使用时,它会因错误80090008(NTE_BAD_ALGID)而失败.通过谷歌搜索左右,我发现,我需要使用特定的提供者(PROV_RSA_AES),而不是默认的一个.由于我有一个提供者句柄,我还需要用CryptGetUserKey替换CryptAcquireCertificatePrivateKey.所以我修改了我的程序,看起来像:

CryptAcquireContext (with PROV_RSA_AES)
CertOpenStore
CertFindCertificateInStore
CryptGetUserKey
CryptCreateHash (with CALG_SHA256)
CryptHashData
CryptSignHash
Run Code Online (Sandbox Code Playgroud)

不幸的是,这没有按预期工作:CryptGetUserKey失败,错误8009000D(NTE_NO_KEY).如果我删除了CryptGetUserKey调用,程序将一直运行,直到CryptSignHash失败,错误80090016(NTE_BAD_KEYSET).我知道密钥集确实存在并且工作正常,因为我能够使用它来签署SHA1摘要.

我尝试使用从CertFindCertificateInStore获得的证书上下文中的信息再次获取上下文:我能做的最好的是成功的CryptGetUserKey调用,但CryptSignHash总是会失败并出现相同的错误.

我试图使用的私钥是2048位长,但我不认为它是一个问题,因为它与SHA1摘要一起使用.我很茫然,所以任何建议都会非常受欢迎!

cryptography rsa sha256 cryptoapi digital-signature

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

coredata最好吗?

coredata比FMDB好吗?我们可以维护核心数据的主键吗?或者任何其他方法来实现而不是在核心数据中使用primarykey?请问任何教程?

iphone core-data ipad

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

如何在调用tf.exe时记住用户名/密码?

我使用tf.exe命令来获取最新的代码,但它一直在询问用户名/密码 - 有没有办法让这些凭据记住?

我查看了tf.exe参数列表,但没有允许传入用户名/密码的选项.请帮忙!

passwords command-line remember-me tfs2010

10
推荐指数
2
解决办法
6665
查看次数

如何获取UITableView的可见部分?

UITableView提供了方法indexPathsForVisibleRowsvisibleCells,但我怎么能得到明显的板块?

iphone objective-c uitableview ios

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

WPF C# - 从另一个线程编辑列表框

我意识到我正在做的事情可能很愚蠢,但我正在学习WPF,并想知道如何做到这一点.

我有一个带有列表框的窗口.列表框用于在程序运行时传递有关程序的状态消息.例如"服务器启动""IP连接时的新连接"等.我希望在后台不断更新,所以我产生了一个新的线程来处理更新这个,但是当我调用添加项目时,我得到了错误消息"调用线程无法访问此对象,因为另一个线程拥有它."

知道如何从另一个线程更新列表框吗?或者在后台等

c# wpf multithreading

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

这个词的Eclipse热键包裹了我的所有代码?

好吧,这是我第十次发生这种情况.

我在Eclipse中碰到了一些热键,并且它"包装了"所有我的代码!

示例(注意新行上的加号):

    // Split the formula into two parts: bit/byte range, and formula.
    try {
        formulaParts = formulaAndBitPositions.split(",");
    } catch (Exception e) {
        msg("PD ERROR during decode: DPN=" + DPN
                + " formulaAndBitPositions=" + formulaAndBitPositions
                + " E= " + e.getMessage());
        return;
    }
Run Code Online (Sandbox Code Playgroud)

所以超过80个字符的每一行都被包裹了!grrrrrrrrr!

谁知道哪个可怕的可怕热键对此负责?

eclipse hotkeys word-wrap

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

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

如何在PHP中包含外部文件?

我需要包含另一个URL上的外部文件.例如google.com.我已经使用本地文件测试了include,因此有很多功能,但如果我尝试使用127.0.0.1/filetoinclude.txt则没有任何反应.我没有收到错误,我只是得到一个空白页面.那么我应该如何在我的网页中加入http://google.com

html php external include

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

如何制作一个指定任何顺序元素的正则表达式?

我想要一个匹配包含的字符串的正则表达式

 - At least one brace: } or {  
and
 - At least one digit: \d  
and
 - At least one instance of either: <p> or </p>
Run Code Online (Sandbox Code Playgroud)

但是以任何顺序,以便匹配所有以下内容:

<p>{123

2}</p>

2<p>}}}

{}{}{}<p></p></p>234234}}}
Run Code Online (Sandbox Code Playgroud)

这些都不匹配:

<p>{ alphabet 123

{2}

{{{}}}

<p>1</p>
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所要求的,它只需要其中任何一个组件:

(<\/p>|<p>|\d|\}|\{)+
Run Code Online (Sandbox Code Playgroud)

我的问题是,我不知道如何使它更通用,而不必像这样指定顺序:

(<\/p>|<p>)+(\d)+(\}|\{)+
Run Code Online (Sandbox Code Playgroud)

或者让它愚蠢地列举每一个可能的顺序......

我怎么说"任何顺序中至少需要这些组件中的一个?"

谢谢.

regex

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

易于扩展mongodb vs mysql

我正在创建一个Grails应用程序,它是移动应用程序的后端.它目前部署在Amazon EC2上.它将数据持久保存到mysql数据库.一个实例当前指向数据库.我计划在负载均衡器后面部署应用程序的多个实例,并最终将读取请求发送到数据库的从属实例.我们计划在未来几个月内发布,并拥有一个拥有数千名用户的测试版.它比读写更密集.

我们已经研究过使用mongodb而不是sql,并将其视为一个很好的解决方案.

没有很多扩展mysql(或mongodb)的经验,因为它具有自动分片等功能,所以缩放mongodb会更容易.(寻找那些同时做过这些事情的人们的想法)我认为现在切换到mongodb会更容易,而不是"生产"并且不得不迁移.

思考?

grails amazon-ec2 mongodb

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