为了 alive 自己的区块链,我们需要把 CRAVE 的区块链,替换成自己的的区块链,因为 NEO 是中是《TheMatrix》正义的化身和代言人,我们为 NEO 来发布一条区块链区块链吧。把 genesis.nNonce = 17113 修改成为 genesis.nNonce = 0 区块从 0 开始,nNonce 用来计算,计算 找到第一个 block 需要的区块数,一旦找到创始区块,将会重新计数 block.这段代码会检测是否有创始区块产生,如果没有,就会产生一个创始区块。得到创始区块:
SHA1和MD5算法详解和源码 SHA1和MD5的算法说明。MD5和SHA1的分组信息运算,分组里面的的数据都会被视为16个DWORD,而MD5算法认为这些DWORD的字节序列是LITTLE-ENDIAN,而SHA1的算法认为DWORD是BIG-ENDIAN的。放入最后一个分组的长度信息,是原始数据长度,而且是BIT位长度,其是一个uint64_t,而MD5算法要求放入的长度是LITTLE-ENDIAN的,而SHA1算法则要求这个长度是BIG-ENDIAN的。
50us延时子程序(12MHZ)void delay_50us(uint16 t){10ms延时子程序(12MHZ)void delay10ms(void)1s延时子程序(12MHZ)void delay1s(void)50ms延时子程序(12MHZ)void delay_50us(uint16 t){200ms延时子程序(12MHZ)void delay200ms(void)500ms延时子程序程序: (12MHZ) void delay500ms(void) { unsigned char i,j,k; for(i=15;i>0;i--) for(j=202;j>0;j--) for(k=81;k>0;k--); }
void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits, long length, DES_key_schedule *schedule, DES_cblock *ivec, int enc);int RSA_sign(int type, const unsigned char *m, unsigned int m_length, unsigned char *sigret, unsigned int *siglen, RSA *rsa);int RSA_verify(int type, const unsigned char *m, unsigned int m_length, unsigned char *sigbuf, unsigned int siglen, RSA *rsa);
undefined reference to `SHA1’的处理方法 | 大和尚''s blog.而SHA1在openssl/sha.h文件中已经定义,且在自己的c文件中也include了该openssl/sha.h !!unsigned char hash[SHA_DIGEST_LENGTH];printf(“digest length = %d\n”,SHA_DIGEST_LENGTH);gcc -o use_sha use_sha.c -lcrypto -lssl../use_shahello worlddigest length = 20digest hash = ??
Wtypes.h 中的非托管类型非托管 C 语言类型托管类名说明。System.unsigned char.unsigned short.unsigned int.unsigned long.char*String 或 System.StringBuilder.
/*gcc -o rsa-decrypt rsa-decrypt.c -lcrypto*/#include <openssl/rsa.//use public key to encrypt void EncryptString(const RSAES_OAEP_SHA_Encryptor &Pub, const char*Seed, const string &Plaintext, string &Ciphertext);void CMyRSA::EncryptString(const string &strPub, const char *Seed, const string &Plaintext, string &Ciphertext) { StringSource PublicKey(strPub, true, new HexDecoder);
具体C程序如下(如有疑问联系本人,新浪微博地址:http://t.sina.com.cn/1858560312):#include #include #define uint unsigned int#define uchar unsigned charunsigned char a,flag;char code YD[]={0x00,0x00,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x00,0x00,0xFF,0xFE,0x01,0x00,0x09,0x00,0x09,0xF8,0x09,0x00,0x15,0x00,0x23,0x00,0x40,0xFE,0x00,0x00,
// 定时器1工作于8位自动重载模式, 用于产生波特率TH1=(unsigned char)(256 - (XTAL / (32L * 12L * baudrate)));TL1=(unsigned char)(256 - (XTAL / (32L * 12L * baudrate))); // 定时器1赋初值SM0 = 0; //串口工作方式控制SM1 = 1; //串口工作方式控制 //这两个共同控制了串口工作方式为 0;REN = 1; //串口接收允许PCON = 0x00;TR1 = 1; //允许串口接收ES = 0; //关闭串口中断}
之后,我查看了C99标准: —The rank of long long int shallbe greater than the rank of long int,whichshall be greater than the rank of int,which shall be greater than therank of shortint,which shall be greater than the rank of signed char.意思是说:long long 的级别高于 long ,long 的级别高于 int ,int 的级别高于 short ,short 的级别高于 char。级别高的整数类型的宽度大于等于级别较低的整数类型。
if( hd->count == 64 ) { /* flush the buffer */ transform( hd, hd->buf );inlen-- ) hd->buf[hd->count++] = *inbuf++;if( hd->count <56 ) { /* enough room */ hd->buf[hd->count++] = 0x80;/* pad */ while( hd->count <56 ) hd->buf[hd->count++] = 0;/* pad character */ while( hd->count <64 ) hd->buf[hd->count++] = 0;transform( hd, hd->buf );
//------------------------ // QString and string change //------------------------ QString s2q(const string &s) { return QString(QString::fromLocal8Bit(s.c_str()));} //------------------------// QString and string change//------------------------QString s2q(const string &s){return QString(QString::fromLocal8Bit(s.c_str()));} int char2num(char ch){if(ch>=''0''&&ch<=''9'')return ch-''0
C语言宏定义使用技巧。可以定义宏,例如:当定义了_DEBUG,输出数据信息和所在文件所在行#ifdef _DEBUG#define DEBUGMSG(msg,date) printf(msg);printf("%d%d%d",date,_LINE_,_FILE_)#else#define DEBUGMSG(msg,date)#endif20,宏定义防止使用是错误用小括号包含。#define myprintf(templt,args...) fprintf(stderr,templt,args) 第一个宏中由于没有对变参起名,我们用默认的宏__VA_ARGS__来替代它。
3DES、AES、RC6、TEA、RSA、MD5、SHA1、SHA256加密源码大聚...3DES、AES、RC6、TEA、RSA、MD5、SHA1、SHA256大聚齐。//TEA加密,数组dat里面的新内容就是加密后的数据。测试方法与过程:DES算法和AES算法都有现成的加密软件,把软仿真计算过的数据和人家的软件做对比,并能解密还原为原数据。RC6、TEA、SHA-256暂时没有找到测试软件,通过不同的密钥看到加密后的数据被完全打散或变形,并能还原为原数据(SHA-256除外)。
40 //通过校验,看看strDigest是否对应原来的message 41 if( bIsSuccess ) 42 { 43 cout << "sussessive verify" << endl; 44 cout << "origin string is: " << strMessage << endl << endl; 45 } 46 else 47 { 48 cout << "fail!" << endl; 49 } 50 51 //通过strDigest2与strMessage进行校验,要是相等, 52 //就证明strDigest2是对应的strMessage2跟strMessage1相等。
#defineGET_UINT32(n,b,i) \{ \ (n) = (uint32) ((uint8 *)b)[(i)] \ | (((uint32) ((uint8 *) b)[(i)+1])<< 8) \ | (((uint32) ((uint8 *) b)[(i)+2])<<16) \ | (((uint32) ((uint8 *) b)[(i)+3])<<24);CMD5::CMD5(unsigned long*md5src){
EC_KEY *ecdsa;RC4(&rc4,len,buf,buf);#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "resource.h"
1 #include 2 #include 3 #include 4 5 int main() 6 { 7 MD5_CTX ctx;1 #include 2 #include 3 #include 4 5 int main() 6 { 7 SHA_CTX stx;MD5有128bit(16个char)*SHA1有160bit(20个char)*SHA256有256bit(32个char)*SHA244有244bit(28个char)*SHA512有512bit(64个char).所以要注意修改大小哦:-O.
用CommonCrypto计算MD5和SHA.}static inline void hexString(unsigned char *from, char *to, NSUInteger length) { for (NSUInteger i = 0;}NSString * md5(const char *string) { static const NSUInteger LENGTH = 16;CommonCrypto支持计算SHA1、SHA224、SHA256、SHA384和SHA512,考虑到目前SHA1已足够安全了,于是就以它为例。NSString * sha1(const char *string) { static const NSUInteger LENGTH = 20;
微信数据库解密算法微信数据库解密算法2018年03月29日 17:39:36阅读数:71 pc端、安卓端微信数据库解密算法安卓端微信数据库密码生成算法网上有文章介绍,这里不提了pc端的密码生产算法在内存中加密了,有兴趣的朋友可以去看看密码如何生成的拿到密码之后怎么解密sqlite数据库?本文为该系列第一篇,主要介绍破解微信数据库的流程。一、微信的语音聊天记录找到微信的语音文件根目录 -》tencent -》MicroMsg -》名字很长...
现在服务器有三个算法dh1,dh2,dh3.那么服务器的首选算法是dh1,而客户端是dh3,客户端此时知道服务器有dh3算法,因此客户端就确认使用dh3算法。服务器:dh1,dh2,dh3.客户端:dh4,dh3,dh1.这时服务器没有客户端的首选算法,客户端会使用第二个算法dh3,此时服务器也支持第二个算法,双方将确定使用dh3算法。//dh: read P pos=6;dh_e=fastpower_comp(dh_g,dh_x,dh_p);*/}void m_dh::comp_k(){ dh_k=fastpower_comp(dh_f,dh_x,dh_p);
三、Audio Hardware HAL的legacy实现之前提到两种Audio Hardware HAL接口定义:1/ legacy:hardware/libhardware_legacy/include/hardware_legacy/AudioHardwareInterface.h2/ 非legacy:hardware/libhardware/include/hardware/audio.h前者是2.3及之前的音频设备接口定义,后者是4.0的接口定义。
[cpp] view plain copy case SIMPLEPROFILE_CHAR6: if ( len == SIMPLEPROFILE_CHAR6_LEN ) { VOID osal_memcpy( simpleProfileChar6, value, SIMPLEPROFILE_CHAR6_LEN );2)在SimpleProfile_GetParameter中添加[cpp] view plain copy case SIMPLEPROFILE_CHAR6: VOID osal_memcpy( value, simpleProfileChar6, SIMPLEPROFILE_CHAR6_LEN ); break; 从机可通过此函数读出char6的值。
生成的 moc_xxx.cpp 中会自动包含 xxx.h 头文件,所以它可以被独立编译成目标文件(.o 或 .obj) 生成的 xxx.moc 是不会包含 xxx.cpp 的(要是包含就出问题了,能发现吧?),因此 xxx.moc 中没有类定义,它无法被独立编译,只能被 include 到 xxx.cpp 中。private:struct { // private data const QMetaObject *superdata; const char *stringdata; const uint *data; const void *extradata; } d;}
ffmpeg.cpp: In function ''codec_data_t* ffmpeg_create(const char*, const char*, int, int, format_list_t*, audio_info_t*, const uint8_t*, uint32_t, audio_vft_t*, void*)'':ffmpeg.cpp: In function ''int ffmpeg_codec_check(void (*)(int, const char*, const char*, ...), const char*, const char*, int, int, format_list_t*, const uint8_t*, uint32_t, CConfigSet*)'':
大端模式和小端模式转化。大端模式。二、判断大端模式和小端模式。三、大端模式和小端模式转换。uint32_t reversebytes_uint32t(uint32_t value){ return (value & 0x000000FFU) << 24 | (value & 0x0000FF00U) << 8 | (value & 0x00FF0000U) >> 8 | (value & 0xFF000000U) >> 24;而且该方法亦可用于小端模式转成大端模式。uint32_t changeEndian_uint32t(uint32_t value){ char* ptr = (char*)(&value);
[cpp] view plain copy /** * @brief UART error callbacks * @param UartHandle: UART handle * @note This example shows a simple way to report transfer error, and you can * add your own implementation. * @retval None */ void HAL_UART_ErrorCallback(UART_HandleTypeDef *UartHandle) { printf("error code:%X\r\n",UartHandle->ErrorCode);