git 记住用户名密码

缘起

git push的时候总是提示输入用户名密码是一件非常影响工作效率,也非常影响心情的事情,下面介绍一下如何免去这种无聊的操作。

解决办法:

如果git仓库支持ssh的话(如github.com),可以通过add ssh-key的方式来实现: https://help.github.com/articles/generating-ssh-keys/

如果git 客户端版本够高的话 (git version >= 1.7.10 ),可以设置 credential.helper ,参考: https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux

如果git版本太低的话:参考:   http://stackoverflow.com/questions/5343068/is-there-a-way-to-skip-password-typing-when-using-https-github

try in golang

上面这样写的try,基本实现了try..catch.. 的功能,但是,如果要在catch中提前return,就不那么方便了,虽然也能做,且看下面这个版本, 我们不妨实现try、try..catch.. 两个函数,需要立即返回的时候,使用try更方便些:

 

memcache源码阅读笔记

二进制协议对于udp的情况,如果需要分包,则包头只有一个;但是没有看到是如何保证多个数据包的顺序的

add_msghdr 是做啥的? msghdr 是sendmsg() 需要的,定义如下:

 

多个包的顺序大概可以通过 sendmsg() 来实现; 然后再了解一下recvmsg吧,或许可以解决顺序问题的

 

libmemcached/udp.hpp 中有如下定义,但是memcached中却没发现类似定义:

 

Memcached中发送UDP数据包使用的是sendmsg(…) 接收UDP数据包使用的是 recvfrom(…)  ; 为啥不是recvmsg(…) ?

C语言中的static关键字

下面验证我昨天问你的一个问题:

1.c 中调用了 2.c 中的一个static函数;

这里完全可以, gcc –o test 1.c    ; 2.c 是多余的,因为1.c中include了2.c了

 

可能是我哪里错了;

把2.c 编译成一个动态的so文件,改so文件依然导出了这个static的a函数

):

  1. 定义和声明是两个概念
    1. 如果包含了定义的文件,则可以使用static 定义的函数的
    2. 如果包含的是声明的文件(就是都文件),则编译的时候必然需要找到一个外部的该符号
    3. 如果使用static定义的,则,不管编译成 .o 文件还是 .so 文件,该符号是不导出的,外部就是没法用的
  2. 一般来讲
    1. .c 文件和 .h 文件对应出现,.h 中声明外部可以使用的函数,显然不会把static的函数写到.h 中的
    2. 每个 .c 文件都单独编译成一个.o 文件,此时 static 的函数就已经被处理的外部不可见了

Intelij 14注册码生成器

保存为:KeyGen.java

 

 

 

然后:

javac KeyGen.java

java -classpath . KeyGen

输入用户名后,回车可生成注册码

RSA 之padding

 

参考: openssl之 : crypto/rsa/rsa_pk1.c

 

对于 RSA_PKCS1_PADDING  来讲(参看: ./crypto/rsa/rsa_eay.c ):

  1. 私钥加密时,使用的是: RSA_padding_add_PKCS1_type_1(…)   pad的是定值 0xff
  2. 公钥加密时,使用的是: RSA_padding_add_PKCS1_type_2(…)   pad的是随机的非零值 (这也是为什么公钥加密每次结果不同,而私钥加密每次结果相同的原因;对于私钥加密,多半用于签名,不需要随机,或者说,相同的数据每次签名结果都相同是很好的)

Optimal Asymmetric Encryption Padding (OAEP)

OAE: 即: 最完美的非对称加密; 而OAEP 是一种padding ; 参考: http://en.wikipedia.org/wiki/Optimal_asymmetric_encryption_padding

其他padding:

 

参考资料:

rsa算法: http://www.di-mgt.com.au/rsa_alg.html

http://www.douban.com/note/338531480/

http://www.tuicool.com/articles/aMfIba

http://crypto.stackexchange.com/questions/22531/how-does-rsa-padding-work-exactly

RSA选用小公钥指数(e=3)真的不安全吗? 

RSA加密的填充模式

OAE算法

PKCS #1: RSA Cryptography Specifications Version 2.0

Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1

PSS:  (具体实现参看 :  pss.go)

MGF(pss 的时候需要):