用户验证

来源:互联网 发布:上海哪里有mac专柜 编辑:程序博客网 时间:2024/06/14 01:58

现在不少人应该都有这个意识不在数据库里存用户密码了,当然我刚知道,因为不少人估计和我一样对安全没有任何概念。

https目前还没有搞通, c的比较别扭,node的就很容易。

但是了解到了http get 和 post的时候是可以带验证的,服务器验证的时候就需要考虑下怎么验证了。我现在了解到的知识:

用户名必须要保存的,

密码必须不保存的,

加盐是必须的,

md5, sha1, sha256, sha384, sha512,这些算法调用openssl是非常快的,每个操作一个字符串执行时间都在1,2个毫秒。

搞了2天,http基本通了,https带上ssl就不行了,希望能解决,目前太痛苦了。资料太少。

=========================================================================

2017-11-29 更新, 终于通了

indy的资料太少,而且目前网上的资料没有一个是完整的,是时候放弃indy搞网络开发了

基本步骤: 

0。下个openssl   http://indy.fulgan.com/SSL/

1。openssl生成 rootkey和验证文件,这个基本上例子都是没问题的

   a. openssl genrsa -des3 -out root.key 1024

  b. openssl req -new -x509 -days 3650 -key root.key -out verf.crt -config openssl.cnf

然后将 root.key和 verf.crt复制到程序目录,如果openssl.cnf不在openssl\bin下,搜索下,新版本的都带

程序里加上:

IdServerIOHandlerSSLOpenSSL1->SSLOptions->RootCertFile=ExtractFilePath(Application->ExeName)+"verf.crt";
IdServerIOHandlerSSLOpenSSL1->SSLOptions->CertFile= ExtractFilePath(Application->ExeName)+"verf.crt";
IdServerIOHandlerSSLOpenSSL1->SSLOptions->KeyFile= ExtractFilePath(Application->ExeName)+"root.key";


2。将 3个文件复制到你的程序目录:libeay32.dll  ssleay32.dll msvcr120.dll

http://docwiki.embarcadero.com/RADStudio/Tokyo/en/OpenSSL


3。开始配置 idhttp和idhttpserver ,idhttp比较简单,放上个IdSSLIOHandlerSocketOpenSSL基本就可以了

主要是idhttpserver ,    在connect中加上这个:

if (AContext->Connection->IOHandler->ClassName()  == "TIdSSLIOHandlerSocketOpenSSL")
(( TIdSSLIOHandlerSocketOpenSSL *)AContext->Connection->IOHandler)->PassThrough= false;

如果没有这个ssl是没法工作的,会报错,加上这两行神奇的代码就可以享受https


另外,对于http,不用做修改,可以直接运行


原创粉丝点击