在研究如何最好地利用OpenSSH时,我研究了SHA哈希并找到a post discussing the SHA2 functions in OpenSSL.接受的答案状态
SHA-224和SHA-256是相同的功能,除了内部参数
我确信这是真的,但是,我想看看自己。就这样我才知道它的外观。具体来说,我想看看执行SHA-224和SHA-256散列的函数。
顺便说一下,这个问题对我来说很重要,因为我已经对编程(C和perl)课程进行了一些介绍,这些总是让我感觉像是#34;好吧,那又怎么样?这是如何做有用的事情"。也许通过稍微探讨一下,我会看到有用的代码是什么样的,了解一下开源软件的组织方式,并向我自己做一些有用的事情迈出一小步。
所以我下载了the OpenSSL source code (openssl-1.0.2e.tar.gz),将其解压缩并思考"哇,我从哪里开始?"
那么,嗯,我从哪里开始?有很多文件和很多目录。对于放置事物的地方是否有约定?是否有我应该安装的开发环境有助于了解更大的图景?任何帮助我开始正确方向的帮助都将不胜感激。
答案 0 :(得分:0)
Google是一个好的开始。有用的关键字:
openssl sha256
第二个结果带您进入头文件openssl/sha.h
,您可以在其中找到代码中调用的函数:
int SHA224_Init(SHA256_CTX *c);
int SHA224_Update(SHA256_CTX *c, const void *data, size_t len);
int SHA224_Final(unsigned char *md, SHA256_CTX *c);
unsigned char *SHA224(const unsigned char *d, size_t n,
unsigned char *md);
int SHA256_Init(SHA256_CTX *c);
int SHA256_Update(SHA256_CTX *c, const void *data, size_t len);
int SHA256_Final(unsigned char *md, SHA256_CTX *c);
unsigned char *SHA256(const unsigned char *d, size_t n,
unsigned char *md);
然后克隆openssl git并grep通过它并不容易,例如github就足够了。现在,关键字SHA256_Init
。而且万岁,实施是here
openssl/crypto/sha/sha256.c