目前我正在阅读一本书C++,它有一些练习。其中一个练习要求构建两个类,其中每个类都有一个用于另一个类的朋友方法。我目前的猜测是这样的:
#include <iostream>
using std::cout;
using std::endl;
class Y;
class X{
public:
void friend Y::f(X* x);
void g(Y* y){cout << "inside g(Y*)" << endl;}
};
class Y{
public:
void friend X::g(Y* y);
void f(X* x) {cout << "inside f(X*)" << endl;}
};
Run Code Online (Sandbox Code Playgroud)
但我的猜测无法编译,因为类X有void friend Y::f(X* x);方法声明。我怎样才能解决这个难题?请再给我一些猜测。
目前我需要为GOST 34.10-2001签名算法生成密钥对.很高兴发现充气城堡提供商支持这种算法,但我无法生成密钥对并将其保存到任何类型的任何密钥库.目前我尝试了这个命令(如果keyalg是DSA和sigalg,这个命令效果很好SHA1withDSA):
keytool -genkey -alias test1 -keyalg ECGOST3410 -keysize 512 -sigalg GOST3411withECGOST3410 \
-keypass test_1 -validity 1000 -storetype JKS -keystore test1.jks -storepass test_1 -v \
-provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "bcprov-jdk16-1.46.jar"
Run Code Online (Sandbox Code Playgroud)
但我有一个错误:
keytool error: java.lang.IllegalArgumentException: unknown key size.
java.lang.IllegalArgumentException: unknown key size.
at sun.security.x509.CertAndKeyGen.generate(CertAndKeyGen.java:134)
at sun.security.tools.KeyTool.doGenKeyPair(KeyTool.java:1156)
at sun.security.tools.KeyTool.doCommands(KeyTool.java:786)
at sun.security.tools.KeyTool.run(KeyTool.java:172)
at sun.security.tools.KeyTool.main(KeyTool.java:166)
Run Code Online (Sandbox Code Playgroud)
当我尝试操作keysize或keysize从命令中删除选项时,我可以看到完全相同的错误.但有一些特殊情况.当我设置keysize为256我有另一个错误:
keytool error: java.lang.IllegalArgumentException: key size not configurable.
java.lang.IllegalArgumentException: key size not configurable.
at sun.security.x509.CertAndKeyGen.generate(CertAndKeyGen.java:134)
at sun.security.tools.KeyTool.doGenKeyPair(KeyTool.java:1156)
at …Run Code Online (Sandbox Code Playgroud) 目前我参与开发基于Java EE的系统(WebLogic服务器,更准确),我想知道如何保护管理员的一些私人数据.例如,系统的某些部分将部署描述符中遗留系统的凭据存储为纯文本,这很糟糕,因为部署者可以读取应用程序配置文件(ejb-jar.xml例如)并窃取强大帐户的用户名和密码.我想关闭这个安全漏洞,但不知道如何.
现在我有兴趣保护这类数据:
从这里我发现我可以使用JCEKS密钥库来保护这类信息,但我无法理解如何使用它.我的应用程序仍应包含kestore密码和访问它的密钥密码.因此,depoyer可以窃取密钥库和密钥的密码,找到我的安全存储空间并窃取凭证.显然,我可以撤销read部署帐户的权限,但之后他可以反编译我的应用程序并开发自己的类似应用程序(或编辑我的应用程序),只需将安全数据打印到某个文件或通过电子邮件发送...现在我我卡住了......
任何人都可以给我一些链接,可以解释如何保护系统免受管理员的影响吗?Weblogic相关链接将更可取.我完全理解,不可能保护所有管理员,并且应该有一些security administrator负责密钥库管理等等,但我想保护所有其他人的敏感数据.
结果
无论jtahlborn的和苗条的答案是正确的,但SLIMS的回答更有趣.我认为在我的情况下,只接受已签名的应用程序以便在服务器上安装.这个decidion可以解决管理员进行修改的问题.管理员将拥有密钥库和所有密钥的密码,但他们根本无法访问密钥库文件.访问密钥库文件将只有特殊的安全管理员('rw')和服务器('r').因此,每个人都有密钥,但没有人(安全管理员除外)可以访问该框.
目前我正在尝试了解如何在mongodb中正确实现CAS操作以支持乐观锁定.我发现更新mongodb是原子的,但我不确定这意味着什么(只有文件重写是原子的或所有更新周期,包括搜索相应的文件及其重写,是原子的?).让我们考虑以下示例.
_id值设置为123,并且属性cas_val设置为10.cas_val文档,_id等于123到11.cas_val文档,_id等于123到11.那么,如果没有对123 文档进行其他更新,那么这两个操作是否可能成功_id?
PS mongodb乐观锁定场景中是否有一些内置技术?