我最近跑git fsck --lost-found
了我的存储库.
我希望看到几个悬空提交,我重置了HEAD
.
但是,我惊讶地看到可能有数千条悬空blob消息.
我不相信我的存储库有任何问题,但我很好奇是什么原因导致这些悬空斑块?只有两个人在存储库上工作,我们没有做任何与众不同的事情.
我不认为它们是由旧版本的文件替换为新版本创建的,因为git需要保留两个blob以便它可以显示历史记录.
想想看,有一次我们错误地将一个非常大的目录(数千个文件)添加到项目中然后将其删除.这可能是所有悬空斑点的来源吗?
只是寻找洞察这个谜.
我正在寻找一个单页的快速参考或备忘单(最好用PDF格式)来表示Crowsfoot/Martin表示法中各种ERD符号的含义.
我已经做了很多谷歌搜索,但没有找到一个好的,简洁的快速参考指南,虽然我敢肯定一个必须存在.
可能重复:
在构造函数中应该完成多少工作?
我心里想着一些建议,但我不记得推理.
我似乎记得在某些时候阅读一些建议(不记得来源)C++构造函数不应该做真正的工作.相反,他们应该只初始化变量.建议继续解释实际工作应该在某种init()方法中完成,在创建实例后单独调用.
情况是我有一个代表硬件设备的类.构造函数调用查询设备的例程以构建描述设备的实例变量对我来说具有逻辑意义.换句话说,一旦new实例化对象,开发人员就会收到一个准备好使用的对象,不需要单独调用object-> init().
施工人员不应该做真正的工作有充分的理由吗?显然它可能会减慢分配时间,但如果在分配后立即调用单独的方法,则不会有任何不同.
只是想弄清楚我目前没有考虑的问题可能导致了这样的建议.
我正在开发一个使用Log4J通过Commons的项目.
我正在尝试找到日志文件的路径,但我找不到一个合适的方法来返回Logger中的日志文件路径.
有没有人试过这个?
当尝试从github通过https克隆任何存储库时,我们得到:
git clone https://github.com/rails/rails.git
Cloning into rails...
remote HEAD refers to nonexistent ref, unable to checkout
Run Code Online (Sandbox Code Playgroud)
我们的服务器是代理服务器.我们已经适当地定义了http_proxy和https_proxy.所有其他功能都在运行.
git版本是1.7.5.4
服务器是Ubuntu Server 11.04.
请注意,由于这种情况发生在我们尝试的每个 github存储库中,我们坚信它不是存储库中refs的问题.我们已经尝试过像jquery和rails这样众所周知的存储库 - 如果问题存在于那些存储库中,那么会有很多人抱怨.我坚信问题在于git和代理,但我所有的谷歌搜索都没有找到解决方案.
作为一个额外的数据点,如果它们是http,克隆似乎工作正常.只有https克隆因此错误而失败.
请注意,我不认为这个问题是重复的,因为此错误的其他问题集中在存储库的问题 - 不使用git和代理.
我对加密文件格式有点困惑.
假设我想用AES-256加密文件.我通过加密算法运行文件,现在我有一个加密字节流.
我显然可以将该字节流写入文件,但是任何第三方加密应用程序都不会理解它,因为它不期望只是原始的加密字节流.
我可以编写哪种文件格式,以便其他加密工具可以理解它?
我所知道的(我认为)是:
PKCS#7
ASN.1
DER
PEM
PKCS#8
Run Code Online (Sandbox Code Playgroud)
但我不确定它们是如何相互关联的.
显然,AESCrypt实用程序也有一种格式,它似乎是它自己的专有格式:http://www.aescrypt.com/aes_file_format.html
这个东西的任何地方都有备忘单吗?我一直在谷歌搜索,发现点点滴滴,但从来没有觉得我有完整的画面.
我确信这个问题没有一个答案,只是想找出一个通用的方法.
使用Java 1.4.2,我需要生成一个密钥和IV,以便在对称算法中使用.这些值将通过安全通道与收件人预先共享.
我可以使用KeyGenerator.keyGenerate()生成密钥.但除非我错过它,否则没有生成随机IV的功能.
我应该做一些完全随意的事情,比如从内存中拉出16个随机字节 或者是否有一种生成足够随机初始化向量的首选方法?
我不认为有更简单的方法可以做到这一点,但我想我会要求确定.
我有一些代码,其中删除了一条重要的行(由我).我想找出我意外删除该行的提交内容.我能找到的唯一方法是在随后的早期提交中逐个启动git"diff'ing",直到我找到更改行的提交.
有没有更简单的方法来找出代码的特定部分被更改的提交?
我正在尝试使用RSA私钥加密某些内容.
我正在关注这个例子:http:
//www.junkheap.net/content/public_key_encryption_java
但将其转换为使用私钥而不是公共密钥.在这个例子之后,我认为我需要做的是:
那么,步骤:
密钥是从openssl生成的:
openssl genrsa -aes256 -out private.pem 2048
然后转换为DER格式:
openssl rsa -in private.pem -outform DER -out private.der
我生成PKCS8EncodedKeySpec:
byte[] encodedKey = new byte[(int)inputKeyFile.length()];
try {
new FileInputStream(inputKeyFile).read(encodedKey);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(encodedKey);
return privateKeySpec;
Run Code Online (Sandbox Code Playgroud)
然后生成私钥对象:
PrivateKey pk = null;
try {
KeyFactory kf = KeyFactory.getInstance(RSA_METHOD);
pk = …
Run Code Online (Sandbox Code Playgroud) 我正在使用Java Cipher和AES实现加密/解密.除了在调用doFinal()时写入5个额外字节外,一切都运行良好.所以,我最终得到一个正确解码的字符串,附加了5个额外的字节.
我相信原因是正在写入整个16字节的块.我看到写了3个16字节块,包括最后一个.输入加密文件是64字节.未加密的文本应为43个字节.
doFinal的文档表明它可以返回写入输出缓冲区的字节数.但是,它是0,16,16,16.我已尝试过各种形式的doFinal并更新并且不会改变行为.
它是有意义的,它写出一个完整的块,因为这是大多数这些算法的运作方式.但是,如果它不会告诉我输出数据的大小,我该如何防止过多的数据呢?
或许我应该使用其他算法?AES256是一项要求,但我想知道不同的块类型或填充类型是否允许它写入正确的字节数.
任何指导?
剪断(某些)简洁:
decryptCipher = Cipher.getInstance("AES");
decryptCipher.init(Cipher.DECRYPT_MODE, aesKey);
Run Code Online (Sandbox Code Playgroud)
解密例程的业务部分.
long bytesToRead = inputFile.length();
while ((inLen = in.read(buffer)) > 0) {
int bytesOut = 0;
byte[] cryptBytes = null;
int outLen = cipher.getOutputSize(inLen);
cryptBytes = new byte[outLen];
if (bytesToRead <= buffer.length) {
try {
bytesOut = cipher.doFinal(buffer, 0, inLen, cryptBytes, 0);
} catch (ShortBufferException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else
try {
bytesOut = cipher.update(buffer, 0, inLen, cryptBytes, 0);
} catch …
Run Code Online (Sandbox Code Playgroud) encryption ×4
java ×4
cryptography ×3
git ×3
aes ×1
c++ ×1
constructor ×1
erd ×1
git-dangling ×1
github ×1
hardware ×1
log4j ×1
notation ×1
private-key ×1
rsa ×1