public string EncryptLong(long plainLong)
 {
     if (_useGuidFormat)
     {
         return(GuidFormat(_hashId.EncodeLong(plainLong), HashIdOperation.Encrypt));
     }
     return(_hashId.EncodeLong(plainLong));
 }
Esempio n. 2
0
 public void SingleLong_Encodes()
 {
     _hashids.EncodeLong(1L).Should().Be("NV");
     _hashids.EncodeLong(2147483648L).Should().Be("21OjjRK");
     _hashids.EncodeLong(4294967296L).Should().Be("D54yen6");
     _hashids.EncodeLong(666555444333222L).Should().Be("KVO9yy1oO5j");
     _hashids.EncodeLong(12345678901112L).Should().Be("4bNP1L26r");
     _hashids.EncodeLong(Int64.MaxValue).Should().Be("jvNx4BjM5KYjv");
 }
        private void Issue_18_it_should_return_empty_string_if_negative_numbers()
        {
            var hashids = new Hashids("this is my salt");

            hashids.Encode(1, 4, 5, -3).ShouldBe(string.Empty);
            hashids.EncodeLong(4, 5, 2, -4).ShouldBe(string.Empty);
        }
Esempio n. 4
0
        public void AlphabetWithDashes_Roundtrip()
        {
            var hashids      = new Hashids(alphabet: "abcdefghijklmnopqrstuvwxyz1234567890_-");
            var input        = new long[] { 1, 2, 3 };
            var decodedValue = hashids.DecodeLong(hashids.EncodeLong(input));

            decodedValue.Should().BeEquivalentTo(input);
        }
        public static string Create(string longUrl)
        {
            // Hopefully random enough
            var hashids = new Hashids($"{DateTime.UtcNow}{Guid.NewGuid()}", 6);
            var hash    = hashids.EncodeLong(longUrl.GetHashCode());

            return(hash);
        }
        private void Issue23_It_should_Encode_hash()
        {
            var hashId  = new Hashids(salt: "0Q6wKupsoahWD5le", alphabet: "abcdefghijklmnopqrstuvwxyz1234567890!", seps: "cfhistu");
            var source  = new long[] { 35887507618889472L, 30720L, Int64.MaxValue };
            var encoded = hashId.EncodeLong(source);

            var result = hashId.DecodeLong(encoded);

            result.ShouldBe(source);
        }
        public static string GenerateSessionId(string salt, DateTime date)
        {
            var    hashids = new Hashids(salt, 4, Alphabet);
            int    rand    = Counter();
            string year    = (date.Year - 2018).ToString();
            long   digits  = Convert.ToInt64($"{year}{date.ToString("MMddHHmmssfff")}{rand}");
            var    code    = hashids.EncodeLong(digits);

            return(code);
        }
Esempio n. 8
0
        private void It_encodes_a_single_long()
        {
            _hashids.EncodeLong(1L).ShouldBe("NV");
            _hashids.EncodeLong(2147483648L).ShouldBe("21OjjRK");
            _hashids.EncodeLong(4294967296L).ShouldBe("D54yen6");

            _hashids.EncodeLong(666555444333222L).ShouldBe("KVO9yy1oO5j");
            _hashids.EncodeLong(12345678901112L).ShouldBe("4bNP1L26r");
            _hashids.EncodeLong(Int64.MaxValue).ShouldBe("jvNx4BjM5KYjv");
        }
Esempio n. 9
0
        public void Then_Decodes_Based_On_EncodingType(EncodingType encodingType, long expectedResult)
        {
            //Arrange
            var config             = EncodingConfigHelper.GenerateRandomConfig();
            var encodingTypeConfig = config.Encodings.Single(x => x.EncodingType == encodingType.ToString());
            var hashids            = new Hashids(encodingTypeConfig.Salt, encodingTypeConfig.MinHashLength, encodingTypeConfig.Alphabet);
            var valueToDecode      = hashids.EncodeLong(expectedResult);

            //Act
            var encodingService = new EncodingService(config);
            var result          = encodingService.Decode(valueToDecode, encodingType);

            //Assert
            Assert.AreEqual(expectedResult, result);
        }
        public bool ValidateSessionId(DfcUserSession userSession)
        {
            var splitSalt = userSession.Salt.Split('|');
            var hashids   = new Hashids(splitSalt[0], 4, Alphabet);

            if (!int.TryParse(splitSalt[1], out var currentCounter))
            {
                return(false);
            }

            var sessionId        = GenerateSessionId(userSession.CreatedDate, currentCounter);
            var encodedSessionId = hashids.EncodeLong(sessionId);

            return(encodedSessionId == userSession.SessionId);
        }
Esempio n. 11
0
        public string Encrypt(long id)
        {
            string encryptedId;

            try
            {
                encryptedId = hashids.EncodeLong(id);
            }
            catch (Exception)
            {
                throw new BusinessException <EncryptionErrorType>(EncryptionErrorType.ErrorInEncryption);
            }

            return(encryptedId);
        }
Esempio n. 12
0
        public void And_Encoded_Value_Is_Valid_Then_Sets_Result_To_Decoded_Value_And_Returns_True(EncodingType encodingType, long expectedResult)
        {
            //Arrange
            var config             = EncodingConfigHelper.GenerateRandomConfig();
            var encodingTypeConfig = config.Encodings.Single(x => x.EncodingType == encodingType.ToString());
            var hashids            = new Hashids(encodingTypeConfig.Salt, encodingTypeConfig.MinHashLength, encodingTypeConfig.Alphabet);
            var valueToDecode      = hashids.EncodeLong(expectedResult);

            //Act
            var encodingService = new EncodingService(config);
            var result          = encodingService.TryDecode(valueToDecode, encodingType, out var decodedValue);

            //Assert
            Assert.IsTrue(result);
            Assert.AreEqual(expectedResult, decodedValue);
        }
Esempio n. 13
0
        void issue_12_should_not_throw_out_of_range_exception()
        {
            var hash = new Hashids("zXZVFf2N38uV");
            var longs = new List<long>();
            var rand = new Random();
            var valueBuffer = new byte[8];
            var randLong = 0L;
            for (var i = 0; i < 100000; i++)
            {
                rand.NextBytes(valueBuffer);
                randLong = BitConverter.ToInt64(valueBuffer, 0);
                longs.Add(Math.Abs(randLong));
            }

            var encoded = hash.EncodeLong(longs);
            var decoded = hash.DecodeLong(encoded);
            decoded.Should().Equal(longs.ToArray());
        }
Esempio n. 14
0
 public static string Encode(decimal id, string SecretId)
 {
     try
     {
         if (SecretId == null)
         {
             SecretId = Models.Settings.SecretId;
         }
         var    hashids = new Hashids(SecretId);
         long   time    = long.Parse(string.Format("{0:yyyyMMdd}", DateTime.Now));
         string hash    = hashids.EncodeLong(long.Parse(id.ToString()), time);
         return(hash);
     }
     catch
     {
         return("");
     }
 }
        private void Issue_12_should_not_throw_out_of_range_exception()
        {
            var hash        = new Hashids("zXZVFf2N38uV");
            var longs       = new List <long>();
            var rand        = new Random();
            var valueBuffer = new byte[8];

            for (var i = 0; i < 100000; i++)
            {
                rand.NextBytes(valueBuffer);
                var randLong = BitConverter.ToInt64(valueBuffer, 0);
                longs.Add(Math.Abs(randLong));
            }

            var encoded = hash.EncodeLong(longs);
            var decoded = hash.DecodeLong(encoded);

            decoded.ShouldBe(longs.ToArray());
        }
        public SessionResult CreateSession(string salt, DateTime date)
        {
            var hashids          = new Hashids(salt, 4, Alphabet);
            var currentCounter   = Counter();
            var sessionId        = GenerateSessionId(date, currentCounter);
            var encodedSessionId = hashids.EncodeLong(sessionId);

            var isValid = Validate(salt, encodedSessionId, sessionId.ToString());

            if (!isValid)
            {
                throw new InvalidSessionException("Invalid decode");
            }

            return(new SessionResult
            {
                Counter = currentCounter,
                EncodedSessionId = encodedSessionId,
            });
        }
Esempio n. 17
0
        public async Task <ActionResult> Register([FromServices] QRContext context, string emailUser, string password)
        {
            //TODO: make a better way to register users
            //TODO: use Google / Facebook authentication
            //TODO: email valid
            emailUser = emailUser?.ToLower();
            var hash = getHash(password);

            if (hash.Length > 500)
            {
                hash = hash.Substring(0, 500);
            }

            var user = context.SimpleUser.FirstOrDefault(it => it.Email.ToLower() == emailUser);

            if (user != null)
            {
                if (!user.ConfirmedByEmail)
                {
                    return(Content($"email {emailUser} does exists . Check your email"));
                }

                if (user.Password == hash)
                {
                    await SignUser(user);

                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(Content("incorrect password. Press back and try again"));
                }
            }
            user          = new SimpleUser();
            user.Email    = emailUser;
            user.Name     = emailUser;
            user.Password = hash;
            context.Add(user);
            await context.SaveChangesAsync();

            var strSalt = Environment.GetEnvironmentVariable("deploy");

            var    hashids = new Hashids(strSalt);
            var    id      = hashids.EncodeLong(user.Iduser);
            string url     = "http://fsq.apphb.com/Home/GeneratedEmail/" + id;
            var    apiKey  = Environment.GetEnvironmentVariable("SendGridKey");

            var client = new SendGridClient(apiKey);
            var from   = new EmailAddress("*****@*****.**", "Ignat Andrei - QR");
            List <EmailAddress> tos = new List <EmailAddress>
            {
                new EmailAddress(emailUser),
                new EmailAddress("*****@*****.**"),
                new EmailAddress("*****@*****.**")
            };

            var subject     = "Confirmati inregistrarea la QR Code Library ";
            var htmlContent = $"Va rog <strong>confirmati </strong> inscrierea la QR Code library apasand <a href='{url}'>{url}</a>. <br />Multumim!";
            var msg         = MailHelper.CreateSingleEmailToMultipleRecipients(from, tos, subject, "", htmlContent, false);
            var response    = await client.SendEmailAsync(msg);

            return(Content("Va rugam verificat emailul( inclusiv spam/ junk) pentru a confirma adresa de email !"));
        }
Esempio n. 18
0
        public string Encrypt(long key)
        {
            var hashids = new Hashids(_salt);

            return(hashids.EncodeLong(key));
        }
Esempio n. 19
0
 public string GenAppRef(long num)
 {
     return(_hashAppRef.EncodeLong(num));
 }
Esempio n. 20
0
 public string GenTxnRef(long num)
 {
     return(_hashTxnRef.EncodeLong(num));
 }
Esempio n. 21
0
 public string Encode(long i)
 {
     return(h.EncodeLong(i));
 }
 public static string EncodeAccountLegalEntityId(long id)
 {
     return(AccountLegalEntityHashGenerator.EncodeLong(id));
 }
 public static string Encode(long id)
 {
     return(HashGenerator.EncodeLong(id));
 }
Esempio n. 24
0
        public static string Generate(TtrsDateTime dateTime)
        {
            var hashids = new Hashids(Configuration.BluemConfiguration.Config.HashSalt, Configuration.BluemConfiguration.Config.HashLength);

            return(hashids.EncodeLong(dateTime.Ticks) + dateTime.Iso8601Timestamp);
        }
Esempio n. 25
0
 public string HashEncodeLongId(long pId)
 {
     return(hashids.EncodeLong(pId));
 }
 public string HashValue(long id)
 {
     return(_hashIds.EncodeLong(id));
 }