我将源代码从一个应用程序复制到另一个应用程序,两者都在同一台机器上运行.我也在两个应用程序中使用下面的containerName相同的字符串.
什么阻止我的新应用程序读取保存在其他应用程序中的密钥?所有其他事情都是平等的,登录用户帐户等.
CspParameters cspParams = new CspParameters();
cspParams.KeyContainerName = containerName;
cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
// Get error "object already exists" below.
RSACryptoServiceProvider rsaKey = new RSACryptoServiceProvider(cspParams);
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用这段代码在C#中使用RSA(CSP中的Exchange密钥)加密symetric密钥(RSA密钥CSP50C8C7CD不可导出,并且它在HSM中):
CspParameters csp_dnet = new CspParameters(1, "HSM especific CSP");
csp_dnet.Flags = CspProviderFlags.UseNonExportableKey;
csp_dnet.KeyContainerName = "test";
RSACryptoServiceProvider rsa_dnet = new RSACryptoServiceProvider(csp_dnet);
// Create 3DES key
TripleDES tripleDES = new TripleDESCryptoServiceProvider();
// Encrypt 3DES with RSA
byte[] encryptedSessionKey = rsa_dnet.Encrypt(tripleDES.Key, false);
Run Code Online (Sandbox Code Playgroud)
看到CSP日志,我注意到C#正在尝试导出密钥以继续操作.下面的CSP日志显示了关于rsa_dnet.Encrypt的部分:
LOG CSP
...
[12/12/2012 17:28:45] [3688] D [CryptExportKey] Blob type: PRIVATEKEYBLOB
...
[12/12/2012 17:28:45] [3688] E [CryptExportKey] Return: FALSE. An internal error occurred.
Run Code Online (Sandbox Code Playgroud)
Windows SO调用CryptExportKey传递PRIVATEKEYBLOB意味着导出de私钥.
LOG HSM
...
2012/12/12 17:44:02 [4DD18140] new key 'test/CSP50C8C7CD', t: 6, a: 0 …Run Code Online (Sandbox Code Playgroud) 我正在学习一些CSP(约束满足)理论的东西,并且正在使用这个库来解析XML文件.我正在使用Xcode作为IDE.
我的程序编译得很好,但是当它链接文件时,我得到XMLParser_libxml2.hh文件的重复符号错误.我的文件是这样分开的:
包含上面的XMLParser文件的类头文件包含类头文件
的类实现文件包含类头文件
的主文件
重复的符号出现在main.o和classfile.o中,但据我所知,我实际上并没有两次添加.hh文件.
完整错误:
ld: duplicate symbol bool CSPXMLParser::UTF8String::to<std::basic_string<char,
std::char_traits<char>, std::allocator<char> > >(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >&) constin
/Users/vash265/CSP/Untitled/build/Untitled.build/Debug/Untitled.build/Objects-
normal/x86_64/dStructFill.o and
/Users/vash265/CSP/Untitled/build/Untitled.build/Debug/Untitled.build/Objects-
normal/x86_64/main.o`
Run Code Online (Sandbox Code Playgroud)
将类的实现复制到主文件中并将类实现文件从编译目标中删除会消除错误,但这种混乱是一种混乱,我将很快添加更多类(并且它会很好将它们放在单独的文件中).
正如我已经理解的那样,这是由文件(XMLParser_libxml2.hh)在一个文件中同时具有类和函数定义和实现引起的(似乎这可能是由于在那个'标题'文件).关于如何在main.cpp中粘贴所有类文件的任何想法?(我试过#ifdefs,他们不工作).
我一直在尝试设置我的 youtube api 来随机播放我的播放列表,但顺序始终相同......
这是我从https://developers.google.com/youtube/iframe_api_reference#setShuffle获取代码的链接
我这样说对吗?
这是我的代码如下
<div id="player"></div>
<script>
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
events: {
'onReady': onPlayerReady
}
});
}
function onPlayerReady(event) {
player.loadPlaylist({'listType': 'playlist', 'list': 'PLF776D41D8211F340','index': '0','startSeconds': '0','suggestedQuality': 'hd720'});
player.setShuffle({'shufflePlaylist' : 1});
}
</script>
Run Code Online (Sandbox Code Playgroud)
我尝试将 shufflePlaylist 设置为“true”,我尝试过cueplaylist 而不是loadplaylist,我什至尝试将shufflePlaylist 放入加载播放列表中...没有任何内容被洗牌。
我查了一下,发现这是 API 的问题,但那是 2 年前的事了,这个问题有解决方案吗?
以下是我尝试过但没有成功的
player.setShuffle(1);
player.setShuffle('1');
player.setShuffle(true);
player.setShuffle('true');
player.setShuffle({'shufflePlaylist' : true});
player.setShuffle({'shufflePlaylist' : …Run Code Online (Sandbox Code Playgroud)