• C#实现的apache htpasswd加密


    一.VisualSvn Server 这个软件大家都知道,具体使用时创建用户名密码和组时,每次都要登陆到VisualSvn Server所在的机器上,次次如此...

        由于一些原因要把这个用户管理的功能集成到OA中,这样可以OA中集中管理SVN的帐号(所有程序都是基于局域网使用)

    二.VisualSvn Server的帐户文件存在当前Repositories下的 htpasswd 文件中,格式为   用户名:xxxxxxxxxxxxxxxxxxxxxxxxxx(x为加密后的密码字符串)

    这样需要解决的关键就在于怎么样得到密码加密后的字符串.通过google找到了一个C#实现htpasswd加密的类库"CryptSharp", site:https://www.zer7.com/software/cryptsharp (不需要FQ)

    三.使用代码方法

    using CryptSharp;
    string
    cryptedPassword = Crypter.MD5.Crypt(password, new CrypterOptions() { { CrypterOption.Variant, MD5CrypterVariant.Apache } });

    校验方法

    bool matches = Crypter.CheckPassword(testPassword, cryptedPassword);

    当然,这个类库还支持其它加密方法,具体请参照类库的网站

    上述代码,通过手动替换我自己的VisualSvn Server的服务器上的用户的密码,测试通过

    四.关键的问题解决后,回到 一中要解决的问题,这里只是一个思路

    我的想法是, OA会部署到一台服务器上,web形式的,无法直接修改VisualSvn Server的密码文件,所以还需要在VisualSvn Server的那台机器上运行一个代理程序,由这个代理程序来实现具体的密码文件的读写

    像这样,  OA(web)-->代理程序-->读写密码文件并返回结果

    接下来会按照这个思路来实现这个功能

    五.不知道大家有没有更好解决方案,希望大家能提出自己的意见

    如果觉得本文还行,请推荐;如果觉得本文太水,请留下您的意见,我会努力改进!

  • 相关阅读:
    函数对象与闭包
    20.03.19作业
    关键字参数,名称空间和作用域
    作业03.18
    函数第二天
    20.03.17作业
    文件
    20.01.16作业
    前端基础
    前端知识(二)
  • 原文地址:https://www.cnblogs.com/lost0/p/7856737.html
Copyright © 2020-2023  润新知