zoukankan      html  css  js  c++  java
  • 转换SID到byte数组

           /*
             <Domain/Machine>\Administrator
        ' Pos : 0 | 1 | 2 3 4 5 6 7 | 8 9 10 11 | 12 13 14 15 | 16 17 18 19 | 20 21 22 23 | 24 25 26 27
        ' Value: 01 | 05 | 00 00 00 00 00 05 | 15 00 00 00 | 06 4E 7D 7F | 11 57 56 7A | 04 11 C5 20 | F4 01 00 00
        ' str : S- 1 | | -5 | -21 | -2138918406 | -2052478737 | -549785860 | -500


        ' SID anatomy:
        >> ' Byte Position
        >> ' 0 : SID Structure Revision Level (SRL)
        >> ' 1 : Number of Subauthority/Relative Identifier
        >> ' 2-7 : Identifier Authority Value (IAV) [48 bits]
        >> ' 8-x : Variable number of Subauthority or Relative Identifier (RID)
        >> [32 bits]
             */
            public byte[] ConvertSID2Bytes(string sid)
            {

                sid = sid.ToLower().Replace("s", "");

                string[] list = sid.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);
                StringBuilder sb = new StringBuilder();
                sb.Append(String.Format("{0:X2}", Convert.ToInt32(list[0])));
                sb.Append(String.Format("{0:X2}", Convert.ToInt32(list.Length - 2)));
                sb.Append(String.Format("{0:X12}", Convert.ToInt32(list[1])));

                Console.WriteLine(sb.ToString());

                for (int i = 2; i < list.Length; i++)
                {
                    string tmp = String.Format("{0:X8}", Convert.ToUInt32(list[i]));
                    for (int j = 6; j >= 0; j -= 2)
                    {
                        sb.Append(tmp.Substring(j, 2));
                    }
                }

                string obj = sb.ToString();
                byte[] ret = new byte[obj.Length / 2];

                for (int i = 0; i < obj.Length; i += 2)
                {
                    ret[i / 2] = Convert.ToByte(obj.Substring(i, 2), 16);
                }

                return ret;
            }

  • 相关阅读:
    返回top写法技巧
    实现页面跳转至本页面的某个地方
    电信项目总结
    Struts2 ---- result
    Oracle定时器
    Oracle序列重置
    struts2---访问WEB
    分析函数
    exists 的简单介绍
    Oracle 部门员工查询
  • 原文地址:https://www.cnblogs.com/juqiang/p/1699882.html
Copyright © 2011-2022 走看看