我正在尝试使用PEM(X.509)证书(存储在磁盘上的privateKey.pem文件中)来签署通过Java中的套接字发送的消息,但是在找到一个接近的示例时遇到了很多麻烦.我通常是一个C++人,他只是在帮助这个项目,所以我把它们整合到代码中有点困难,因为我不熟悉API.
不幸的是,我只限于Java(1.6.0 Update 16)标准的方法,所以虽然我发现了一个使用BouncyCastle的PEMReader的类似例子,但它对这个特定的项目没有多大帮助.
我的privateKey.pem密钥是passphrase protected,格式为:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED DEK-Info:
DES-EDE3-CBC,63A862F284B1280B
[...]
tsjQI4H8lhOBuk+NelHu7h2+uqbBQzwkPoA8IqbPXUz+B/MAGhoTGl4AKPjfm9gu
OqEorRU2vGiSaUPgDaRhdPKK0stxMxbByUi8xQ2156d/Ipk2IPLSEZDXONrB/4O5
[...]
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
它们是使用OpenSSL生成的:
openssl.exe genrsa -out private_key.pem 4096
Run Code Online (Sandbox Code Playgroud)
我无法在运行之前将此密钥转换为DER或其他格式,所需的任何转换都需要在代码内部完成,因为密钥需要易于更换且格式仍为PEM.
我听过各种各样的事情,我并不完全确定,并且希望这里的集体思想可以帮助将各个部分拉到一起.
我听说它说PEM证书需要Base64解码才能将其转换为可以使用的DER证书.我有一个名为MiGBase64的Base64解码工具,但我不完全确定如何/何时需要解码.
我已经迷失在Java API文档中,试图追踪存在的15种不同类型的Keys,KeyStores,KeyGenerators,Certificates等,但我对它们中的任何一种都不熟悉,无法正确识别我需要的使用,以及如何一起使用它们.
基本算法看起来很简单,这就是为什么我无法编写同样简单的实现特别令人沮丧的原因:
1)从文件中读取privateKey.pem
2)将私钥加载到XXX类中,使用密码短语解密密钥
3)使用带有Signature类的密钥对象对消息进行签名
非常感谢帮助,特别是示例代码.我一直在努力寻找这个问题的有用示例,因为大多数"关闭"示例都是使用BouncyCastle生成新密钥,或者只是使用不适用于此处的不同形式的密钥/类.
这似乎是一个非常简单的问题,但它让我发疯,任何非常简单的答案?
这是基于类似的问题如何替换Access SQL中的多个字符?
我写了这个,因为sql server 2005似乎对where子句中的19个替换的replace()函数有限制.
我有以下任务:需要在列上执行匹配,并使用replace()函数提高匹配剥离多个不需要的字符的机会
DECLARE @es NVarChar(1) SET @es = ''
DECLARE @p0 NVarChar(1) SET @p0 = '!'
DECLARE @p1 NVarChar(1) SET @p1 = '@'
---etc...
SELECT *
FROM t1,t2
WHERE REPLACE(REPLACE(t1.stringkey,@p0, @es), @p1, @es)
= REPLACE(REPLACE(t2.stringkey,@p0, @es), @p1, @es)
---etc
Run Code Online (Sandbox Code Playgroud)
如果where子句中有> 19 REPLACE(),则它不起作用.所以我想出的解决方案是在这个例子中创建一个名为trimChars的sql函数(请原谅他们从@ 22开始
CREATE FUNCTION [trimChars] (
@string varchar(max)
)
RETURNS varchar(max)
AS
BEGIN
DECLARE @es NVarChar(1) SET @es = ''
DECLARE @p22 NVarChar(1) SET @p22 = '^'
DECLARE @p23 NVarChar(1) SET @p23 …Run Code Online (Sandbox Code Playgroud) 我有一个页面上有一堆用户控件.我希望能够在我的代码中替换的内容中直接使用"宏"或"占位符".这应该不重要,但我使用Ektron作为我的CMS.
在发送到客户端之前,是否有任何页面事件可以挂钩以对整个呈现的页面内容进行字符串替换?
UPDATE
这是我目前用来完成此任务的代码:
protected override void Render(HtmlTextWriter writer)
{
string content = string.Empty;
using (var stringWriter = new StringWriter())
using (var htmlWriter = new HtmlTextWriter(stringWriter))
{
// render the current page content to our temp writer
base.Render(htmlWriter);
htmlWriter.Close();
// get the content
content = stringWriter.ToString();
}
// replace our placeholders
string newContent = content.Replace("$placeholder1$", "placeholder1 data").Replace("$placeholder2$", "placeholder2 data");
// write the new html to the page
writer.Write(newContent);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试部署我写的服务.这是InstallLog文件:
Installing assembly 'c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.exe'.
Affected parameters are:
logtoconsole =
assemblypath = c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.exe
logfile = c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.InstallLog
Installing service TweetLinkService...
Creating EventLog source TweetLinkService in log Application...
Rolling back assembly 'c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.exe'.
Affected parameters are:
logtoconsole =
assemblypath = c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.exe
logfile = c:\Users\brwatson\Development\Projects\TweetLinks\TweetLinkQueue\bin\Debug\TweetLinkQueue.InstallLog
Restoring event log to previous state for source TweetLinkService.
An exception occurred during the Rollback phase of the System.Diagnostics.EventLogInstaller installer.
System.Security.SecurityException: The source was not found, but some or all event logs could not be searched. Inaccessible logs: Security.
An …Run Code Online (Sandbox Code Playgroud) 是否可以创建基于ScrollViewer滚动条可见性触发的触发器?我有一个ScrollViewer与它VerticalScrollBarVisibility设置为Auto,我想改变一些的ScrollViewer的属性只有当在滚动条实际上是可见的.
像这样的东西:
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ScrollViewer.Triggers>
<Trigger Property="IsScrollBarVisible" Value="True">
<!-- Setters -->
</Trigger>
</ScrollViewer.Triggers>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud) 我在Java中给出了一个byte []数组,其中包含图像的字节,我需要将其输出到图像中.我该怎么做呢?
非常感谢
我已经阅读了关于这个主题的一些讨论,而且我有些不明白.
最常见的答案似乎是:使用ReadOnly属性返回缓存数据,使用Function返回非缓存数据.根本不要使用WriteOnly属性,因为"它没有意义".
没有性能原因.在IL中,MyProperty get_MyProperty以及set_MyProperty方法存在.唯一的原因显然是应该假设上述答案.
那么,为什么还要使用ReadOnly Properties呢?为什么不将变量设为Public而不是Private?然后为什么要打扰属性呢?缓存数据 - >公共变量,非缓存数据 - >函数,写入数据 - > Sub
让我们忘记以上所有,并使用属性作为一个方便的功能?获取和设置数据的一个"项目".使用常识来了解Get是否不会返回缓存数据(可能导致延迟).
-Edit-我看到人们或多或少同意物业是最好的选择.我只是不明白为什么我发现了很多关于人们提倡反对财产的讨论.
我开始学习Objective-C而且我没有Mac(而且我没有计划得到它),但是当我看到Cocoa是一个非常好的Objective-C开发框架时,我想要要知道:在Windows和Linux中使用Cocoa是否可以开发?
谢谢.
我应该如何编写代码来示例恰好是结构成员的数组的特定数组索引?以下代码给了我一些问题.
// main.c
void clean_buffers(void); // prototype
struct DEV_STATUS {
unsigned char ADDR;
unsigned char DEV_HAS_DATA;
unsigned char ETH_HAS_DATA;
unsigned char DATA[20];
};
struct DEV_STATUS g_cmdQueue[60] = {0};
void main(void) {
clean_buffers();
while (1) {
;// MCU tasks
}
}
void clean_buffers(void) {
unsigned char theCount = 0;
byte queIdx;
for (queIdx = 0; queIdx < 59; queIdx++) {
struct DEV_STATUS *p_struct;
unsigned char *p_data;
p_struct = &g_cmdQueue[queIdx];
p_data = &p_struct->DATA;
p_struct->ADDR = 0;
p_struct->DEV_HAS_DATA = 0;
p_struct->ETH_HAS_DATA = 0; …Run Code Online (Sandbox Code Playgroud) 我需要在表中的XML列上执行一个数据透视表,其中XML包含多个具有许多属性的元素.每个元素中的属性始终相同,但元素的数量会有所不同.让我举个例子...
FormEntryId | FormXML | DateCreated
====================================================================================
1 |<Root> | 10/15/2009
| <Form> |
| <FormData FieldName="Username" FieldValue="stevem" /> |
| <FormData FieldName="FirstName" FieldValue="Steve" /> |
| <FormData FieldName="LastName" FieldValue="Mesa" /> |
| </Form> |
|</Root> |
| |
------------------------------------------------------------------------------------
2 |<Root> | 10/16/2009
| <Form> |
| <FormData FieldName="Username" FieldValue="bobs" /> |
| <FormData FieldName="FirstName" FieldValue="Bob" /> |
| <FormData FieldName="LastName" FieldValue="Suggs" /> |
| <FormData FieldName="NewField" FieldValue="test" /> |
| </Form> |
|</Root> |
Run Code Online (Sandbox Code Playgroud)
我需要结束每个不同的FieldName属性值(在本例中为Username,FirstName,LastName和NewField)的结果集,并将其对应的FieldValue属性作为值.我上面给出的例子的结果如下:
FormEntryId | Username …Run Code Online (Sandbox Code Playgroud) c# ×2
java ×2
sql ×2
sql-server ×2
.net ×1
arrays ×1
asp.net ×1
byte ×1
c ×1
cocoa ×1
dereference ×1
ektron ×1
frameworks ×1
function ×1
image ×1
member ×1
objective-c ×1
pem ×1
pointers ×1
properties ×1
render ×1
scrollviewer ×1
signature ×1
sql-function ×1
structure ×1
t-sql ×1
triggers ×1
wpf ×1
xaml ×1
xml ×1
xquery ×1