⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pipe-auth.pl

📁 这是一个完全开放的
💻 PL
字号:
#!/usr/bin/perl -w## Sample pipe authenticator module. You can use this as a basis for your# own auth/reg module. See docs/dev/c2s-pipe-authenticator for details# about the protocol.## This code is hereby placed into the public domain.#use strict;use MIME::Base64;# Flush output immediately.$| = 1;# On startup, we have to inform c2s of the functions we can deal with. USER-EXISTS is not optional.print "OK USER-EXISTS GET-PASSWORD CHECK-PASSWORD SET-PASSWORD GET-ZEROK SET-ZEROK CREATE-USER DESTROY-USER FREE\n";# Our main loopmy $buf;while(sysread (STDIN, $buf, 1024) > 0){    my ($cmd, @args) = split ' ', $buf;    $cmd =~ tr/[A-Z]/[a-z]/;    $cmd =~ tr/-/_/;    eval "print _cmd_$cmd(\@args), '\n'";}# Determine if the requested user exists.sub _cmd_user_exists{    my ($user, $realm) = @_;    # !!! return "OK" if user exists;    return "NO";}# Retrieve the user's password.sub _cmd_get_password{    my ($user, $realm) = @_;    # !!! $pass = [password in database];    #     return "NO" if not $pass;    #     $encoded_pass = encode_base64($pass);    #     return "OK $encoded_pass" if $encoded_pass;    return "NO";}# Compare the given password with the stored password.sub _cmd_check_password{    my ($user, $encoded_pass, $realm) = @_;    # !!! $pass = decode_base64($encoded_pass);    #     return "NO" if not $pass;    #     $spass = [password in database];    #     return "OK" if $pass eq $spass;    return "NO";}# Store the password in the database.sub _cmd_set_password{    my ($user, $encoded_pass, $realm) = @_;    # !!! $pass = decode_base64($encoded_pass);    #     return "NO" if not $pass;    #     $fail = [store $pass in database];    #     return "OK" if not $fail;    return "NO";}# Retrieve the user's stored zerok data.sub _cmd_get_zerok{    my ($user, $realm) = @_;    # !!! $hash = [hash in database];    #     $token = [token in database];    #     $sequence = [sequence in database];    #     return "OK $hash $token $sequence" if $hash and $token and $sequence;    return "NO";}# Store the user's zerok data.sub _cmd_set_zerok{    my ($user, $hash, $token, $sequence, $realm) = @_;    # !!! $fail = [store $hash in database];    #     $fail and $fail = [store $token in database];    #     $fail and $fail = [store $sequence in database];    #     return "OK" if not $fail;        return "NO";}# Create a user in the database (with no auth credentials).sub _cmd_create_user{    my ($user, $realm) = @_;    # !!! $fail = [create user in database]    #     return "OK" if not $fail;    return "NO";}# Delete a user and associated credentials.sub _cmd_delete_user{    my ($user, $realm) = @_;    # !!! $fail = [delete user in database]    #     return "OK" if not $fail;    return "NO";}# c2s shutting down, do the same.sub _cmd_free{    # !!! free data    #     close database handles    exit(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -