Ejemplo n.º 1
0
        private static void GenerateSampleData()
        {
            string sku       = "522030008130R";
            string skuBase16 = AnyBaseConvert.Convert(sku, AnyBaseConvert.BaseCharSet.Base36_Custom,
                                                      AnyBaseConvert.BaseCharSet.Base16).PadLeft(19, '0');
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("Human Readable,Unique ID, Url, EPC");
            for (int i = 1; i <= 100; i++)
            {
                string humanReadable  = $"{sku}{i.ToString().PadLeft(7, '0')}";
                var    hashCode       = Math.Abs(humanReadable.GetHashCode());
                string sequenceBase16 = AnyBaseConvert
                                        .Convert(i.ToString(), AnyBaseConvert.BaseCharSet.Base10, AnyBaseConvert.BaseCharSet.Base16)
                                        .PadLeft(13, '0');
                string epcBase16             = $"{skuBase16}{sequenceBase16}";
                var    randomedHumanReadable = $"{hashCode.ToString().First()}{humanReadable}";

                var uid = AnyBaseConvert.Convert(randomedHumanReadable, AnyBaseConvert.BaseCharSet.Base36_Custom,
                                                 AnyBaseConvert.BaseCharSet.Base66_Url_Safe_Custom);
                var uid2 = AnyBaseConvert.Convert(uid, AnyBaseConvert.BaseCharSet.Base66_Url_Safe_Custom,
                                                  AnyBaseConvert.BaseCharSet.Base36_Custom);
                if (randomedHumanReadable != uid2)
                {
                    int x = 1;
                }

                //Humanread, Unique Id,Url

                sb.AppendLine($"{humanReadable},{uid},https://y.esquel.cn/b/_13{uid},{epcBase16}");
            }

            string result = sb.ToString();
            int    x1     = 1;
        }
Ejemplo n.º 2
0
        private static void GenerateSampleData2()
        {
            string sku = "522030008130R";

            StringBuilder sb = new StringBuilder();

            for (int i = 1; i <= 100; i++)
            {
                string value    = $"{sku}{i.ToString().PadLeft(7, '0')}";
                var    hashCode = Math.Abs(value.GetHashCode());

                value = $"{hashCode.ToString().First()}{value}";
                var uid = AnyBaseConvert.Convert(value, AnyBaseConvert.BaseCharSet.Base36_Custom,
                                                 AnyBaseConvert.BaseCharSet.Base66_Url_Safe_Custom);
                var uid2 = AnyBaseConvert.Convert(uid, AnyBaseConvert.BaseCharSet.Base66_Url_Safe_Custom,
                                                  AnyBaseConvert.BaseCharSet.Base36_Custom);
                if (value != uid2)
                {
                    int x = 1;
                }

                sb.AppendLine($"{value},{uid},https://y.esquel.cn/a/{uid}");
            }

            string result = sb.ToString();
        }
Ejemplo n.º 3
0
        /// <summary>
        ///     Deobfuscate an obfuscated string back to number.
        /// </summary>
        /// <param name="value">
        ///     The obfuscated string to deobfuscate.
        /// </param>
        /// <returns>
        ///     The number represented by the obfuscated string specified.
        /// </returns>
        public string Deobfuscate(string value)
        {
            var valueWithoutDummyCharacters = ObfuscatorHelper.RemoveDummyCharacters(value);

            // return AnyBaseConvert.ConvertFromBase(valueWithoutDummyCharacters);
            return(AnyBaseConvert.Convert(valueWithoutDummyCharacters, AnyBaseConvert.BaseCharSet.Base66_Url_Safe_Custom, AnyBaseConvert.BaseCharSet.Base10));
        }
Ejemplo n.º 4
0
        /// <summary>
        ///     Obfuscate the specified number.
        /// </summary>
        /// <param name="value">
        ///     Non-negative integer to obfuscate.
        /// </param>
        /// <returns>
        ///     The obfuscated string of the specified number.
        /// </returns>
        public string Obfuscate(Int64 value)
        {
            /*if (value < 0)
             *  throw new InvalidOperationException("Negative values are not supported.");*/

            // var baseValue =  AnyBaseConvert.ConvertToBase(value);
            var baseValue = AnyBaseConvert.Convert(value.ToString(), AnyBaseConvert.BaseCharSet.Base10,
                                                   AnyBaseConvert.BaseCharSet.Base66_Url_Safe_Custom);

            return(ObfuscatorHelper.AddDummyCharacters(baseValue, Strategy, Seed));
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            /*
             * string source = "532030012410U9999999".ToUpper();
             * int hashCode = source.GetStableHashCode();
             * source = $"{source}-{hashCode}";
             * var aaa=AnyBaseConvert.Convert(source, AnyBaseConvert.BaseCharSet.Base36,
             *  AnyBaseConvert.BaseCharSet.Base66_Url_Safe_Custom);
             * var bbb=AnyBaseConvert.Convert(aaa, AnyBaseConvert.BaseCharSet.Base66_Url_Safe_Custom,
             *  AnyBaseConvert.BaseCharSet.Base36);
             * Console.WriteLine($"{source} - {aaa} - {bbb}");
             */
            var aaa = AnyBaseConvert.ToUrlSafe(BigInteger.Parse("9999999999999999999999999999999999999999"));

            GenerateSampleData();
            GenerateSampleData2();
            Test3();

            /*Obfuscator dd = new Obfuscator();
             * var value = Int32.MaxValue;
             * Random random = new Random();
             * for (int i = 0; i < 20; i++)
             * {
             *  value = random.Next(0, Int32.MaxValue);
             *  var a = dd.Obfuscate(value);
             *  var b = dd.Deobfuscate(a);
             *  Console.WriteLine($"{i} - {value}-{a}-{b}");
             * }*/
            var           aaxa     = AnyBaseConvert.Convert("~~", AnyBaseConvert.BaseCharSet.Base66_Url_Safe, AnyBaseConvert.BaseCharSet.Base10);
            var           aax2a    = AnyBaseConvert.Convert("zz", AnyBaseConvert.BaseCharSet.Base62, AnyBaseConvert.BaseCharSet.Base10);
            StringBuilder sbbase10 = new StringBuilder();

            for (int i = 0; i < 100; i++)
            {
                sbbase10.AppendLine(AnyBaseConvert.Convert(i.ToString(), AnyBaseConvert.BaseCharSet.Base10,
                                                           AnyBaseConvert.BaseCharSet.Base62));
            }

            string testString   = "rHFjOe~P7F2vTG5f-I";
            string base36String = AnyBaseConvert.Convert(testString,
                                                         AnyBaseConvert.BaseCharSet.Base66_Url_Safe_Custom, AnyBaseConvert.BaseCharSet.Base36_Custom);
            string rrr = sbbase10.ToString();

            Console.WriteLine("Hello World!");
            Console.ReadLine();
        }
Ejemplo n.º 6
0
        private static void Test3()
        {
            // string sku = "522030008130R";
            string sku = "IIIIIIIIIIIIII";//Max base 36
            long   seq = 999999999999;

            string maxUniqueId = $"{sku}{seq}";

            string maxSku       = "ZZZZZZZZZZZZZZ";
            string maxSkuBase16 = AnyBaseConvert.Convert(maxSku, AnyBaseConvert.BaseCharSet.Base36,
                                                         AnyBaseConvert.BaseCharSet.Base16);

            var uid = AnyBaseConvert.Convert(maxUniqueId, AnyBaseConvert.BaseCharSet.Base36_Custom,
                                             AnyBaseConvert.BaseCharSet.Base66_Url_Safe_Custom);
            string maxSeqBase10 = "999999999999999";
            string maxSeqBase16 = AnyBaseConvert.Convert(maxSeqBase10, AnyBaseConvert.BaseCharSet.Base10,
                                                         AnyBaseConvert.BaseCharSet.Base16);
            int aa = 1;
        }
Ejemplo n.º 7
0
        private string GenerateSampleData(string sku, ulong startIndex, uint qty, string urlPrefix = "https://y.esquel.cn/b/_13")
        {
            ;
            string skuBase16 = AnyBaseConvert.Convert(sku, AnyBaseConvert.BaseCharSet.Base36_Custom,
                                                      AnyBaseConvert.BaseCharSet.Base16).PadLeft(19, '0');
            StringBuilder sb = new StringBuilder();
            // int startIndex = 1;
            ulong end = startIndex + qty - 1;

            for (ulong i = startIndex; i <= end; i++)
            {
                string humanReadable  = $"{sku}{i.ToString().PadLeft(7, '0')}";
                var    hashCode       = Math.Abs(humanReadable.GetHashCode());
                string sequenceBase16 = AnyBaseConvert
                                        .Convert(i.ToString(), AnyBaseConvert.BaseCharSet.Base10, AnyBaseConvert.BaseCharSet.Base16)
                                        .PadLeft(13, '0');
                string epcBase16             = $"{skuBase16}{sequenceBase16}";
                var    randomedHumanReadable = $"{hashCode.ToString().First()}{humanReadable}";

                var uid = AnyBaseConvert.Convert(randomedHumanReadable, AnyBaseConvert.BaseCharSet.Base36_Custom,
                                                 AnyBaseConvert.BaseCharSet.Base66_Url_Safe_Custom);
                var uid2 = AnyBaseConvert.Convert(uid, AnyBaseConvert.BaseCharSet.Base66_Url_Safe_Custom,
                                                  AnyBaseConvert.BaseCharSet.Base36_Custom);
                if (randomedHumanReadable != uid2)
                {
                    int x = 1;
                }

                //Humanread, Unique Id,Url

                // string urlPrefix = "https://y.esquel.cn/b/_13";
                sb.AppendLine($"{humanReadable},{uid},{urlPrefix}{uid},{epcBase16}");
            }

            string result = sb.ToString();

            return(result);
        }