[root@wx03 mojo]# cat a1.pl
use Digest::MD5;
my $md5 = Digest::MD5->new;
$md5->add(1234567);
print $md5->hexdigest."\n";
[root@wx03 mojo]# perl a1.pl
fcea920f7412b5da7be0cf42b8c93759
[root@wx03 mojo]# cat a1.pl
use Digest::MD5;
my $md5 = Digest::MD5->new;
$md5->add(admin);
print $md5->hexdigest."\n";
[root@wx03 mojo]# perl a1.pl
21232f297a57a5a743894a0e4a801fc3
[root@wx03 mojo]# cat a1.pl
use Digest::MD5;
my $md5 = Digest::MD5->new;
$md5->add(admin);
my $pass= $md5->hexdigest;
print "\$pass is $pass\n";
[root@wx03 mojo]# perl a1.pl
$pass is 21232f297a57a5a743894a0e4a801fc3
mysql> select md5('admin') from user;
+----------------------------------+
| md5('admin') |
+----------------------------------+
| 21232f297a57a5a743894a0e4a801fc3 |
| 21232f297a57a5a743894a0e4a801fc3 |
mysql> select md5('1234567') from user;
+----------------------------------+
| md5('1234567') |
+----------------------------------+
| fcea920f7412b5da7be0cf42b8c93759 |
| fcea920f7412b5da7be0cf42b8c93759 |
/*************************************
[root@wx03 mojo]# cat login.pl
use Mojolicious::Lite;
use JSON qw/encode_json decode_json/;
use Encode;
no strict;
no warnings;
use JSON;
use POSIX;
use JSON::RPC::Client;
use Data::Dumper;
use Digest::MD5;
my $SDATE = strftime("%Y-%m-%d",localtime());
post '/api/login' => sub {
my $c = shift;
my $username = $c->param('username');
my $paswd = $c->param('passwd');
my $md5 = Digest::MD5->new;
$md5->add($passwd);
$passwd= $md5->hexdigesta;
print "\$passwd is $passwd\n";
use DBI;
my %hash=();
my $dbUser='DEVOPS';
my $user="root";
my $pass='R00t,uHagt.0511';
my $dbh = DBI->connect("dbi:mysql:database=$dbUser;host=127.0.0.1;port=3306",$user,$pass) or die "can't connect to database ". DBI-errstr;
my $hostSql = qq{select count(*) from user where username='$username' and password='$passwd'};
my $selStmt = $dbh->prepare($hostSql);
print "\$hostSql is $hostSql\n";
$selStmt->execute();
my $count = $selStmt->fetchrow_array();
print "\$count is $count\n";
if ( $count ==1 )
{ $hash{login}='success';$c->render(json => \%hash);}
else
{ $hash{login}='failed';$c->render(json => \%hash);}
};
app->start;
[root@wx03 mojo]#
[root@wx03 mojo]# morbo login.pl
Server available at http://127.0.0.1:3000
模拟post 请求:
Pattern Methods Name
/api/login POST apilogin
/**********get 登录:
[root@wx03 mojo]# cat login.pl
use Mojolicious::Lite;
use JSON qw/encode_json decode_json/;
use Encode;
no strict;
no warnings;
use JSON;
use POSIX;
use JSON::RPC::Client;
use Data::Dumper;
use Digest::MD5;
my $SDATE = strftime("%Y-%m-%d",localtime());
get '/api/login' => sub {
my $c = shift;
my $username = $c->param('username');
my $passwd = $c->param('passwd');
my $md5 = Digest::MD5->new;
$md5->add($passwd);
$passwd= $md5->hexdigest;
print "\$passwd is $passwd\n";
use DBI;
my %hash=();
my $dbUser='DEVOPS';
my $user="root";
my $pass='R00t,uHagt.0511';
my $dbh = DBI->connect("dbi:mysql:database=$dbUser;host=127.0.0.1;port=3306",$user,$pass) or die "can't connect to database ". DBI-errstr;
my $hostSql = qq{select count(*) from user where username='$username' and password='$passwd'};
my $selStmt = $dbh->prepare($hostSql);
print "\$hostSql is $hostSql\n";
$selStmt->execute();
my $count = $selStmt->fetchrow_array();
print "\$count is $count\n";
if ( $count ==1 )
{ $hash{login}='success';$c->render(json => \%hash);}
else
{ $hash{login}='failed';$c->render(json => \%hash);}
};
app->start;
http://120.55.118.6:3000/api/login?username=admin&passwd=admin
{"login":"success"}
http://120.55.118.6:3000/api/login?username=admin&passwd=admin33
{"login":"failed"}
/*******post 登录
[tomcat@wx03 ~]$ perl a3.pl
---------------
200 OK
[tomcat@wx03 ~]$ vim a3.pl
[tomcat@wx03 ~]$ perl a3.pl
---------------
200 OK
HTTP/1.1 200 OK
Date: Fri, 21 Oct 2016 04:40:38 GMT
Server: Mojolicious (Perl)
Content-Length: 19
Content-Type: application/json;charset=UTF-8
Client-Date: Fri, 21 Oct 2016 04:40:38 GMT
Client-Peer: 120.55.118.6:3000
Client-Response-Num: 1
{"login":"success"}
[tomcat@wx03 ~]$ cat a3.pl
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Headers;
use HTTP::Response;
use Encode;
use File::Temp qw/tempfile/;
use HTTP::Date qw(time2iso str2time time2iso time2isoz);
my $CurrTime = time2iso(time());
my $dis_mainpublish='中均资本';
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
my $now = time();
$ua->agent('Mozilla/5.0');
my $cookie_jar = HTTP::Cookies->new(
file => 'lwp_cookies.txt',
autosave => 1,
ignore_discard => 1
);
$ua->cookie_jar($cookie_jar);
my $str=(rand(1));
my $url='http://120.55.118.6:3000/api/login';
my $res = $ua->post($url,{
'username'=>'admin',
'passwd'=>'admin'
}
);
print "---------------\n";
print $res->status_line."\n";
print $res->as_string();
[tomcat@wx03 ~]$ perl a3.pl
---------------
200 OK
HTTP/1.1 200 OK
Date: Fri, 21 Oct 2016 04:40:43 GMT
Server: Mojolicious (Perl)
Content-Length: 19
Content-Type: application/json;charset=UTF-8
Client-Date: Fri, 21 Oct 2016 04:40:43 GMT
Client-Peer: 120.55.118.6:3000
Client-Response-Num: 1
{"login":"success"}
[tomcat@wx03 ~]$ perl a3.pl
---------------
200 OK
HTTP/1.1 200 OK
Date: Fri, 21 Oct 2016 04:40:43 GMT
Server: Mojolicious (Perl)
Content-Length: 19
Content-Type: application/json;charset=UTF-8
Client-Date: Fri, 21 Oct 2016 04:40:43 GMT
Client-Peer: 120.55.118.6:3000
Client-Response-Num: 1
{"login":"success"}
[tomcat@wx03 ~]$ vim a3.pl
[tomcat@wx03 ~]$ perl a3.pl
---------------
200 OK
HTTP/1.1 200 OK
Date: Fri, 21 Oct 2016 04:41:19 GMT
Server: Mojolicious (Perl)
Content-Length: 18
Content-Type: application/json;charset=UTF-8
Client-Date: Fri, 21 Oct 2016 04:41:19 GMT
Client-Peer: 120.55.118.6:3000
Client-Response-Num: 1
{"login":"failed"}