Exemple #1
0
        static public void TestStringHash64()
        {
            StringHashing.ClearReverseLookup();

            int collisionCount = 0;

            StringHashing.SetOnCollision((a, b, s, h) => collisionCount++);

            for (int i = -1000; i <= 1000; ++i)
            {
                new StringHash64(i.ToString());
            }

            string allText = File.ReadAllText("Assets/Editor/words.txt");

            foreach (var word in StringSlice.EnumeratedSplit(allText, new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries))
            {
                word.Hash64();
            }

            if (collisionCount > 0)
            {
                Debug.LogErrorFormat("[StringTests] {0} collisions with hash size 16", collisionCount);
            }

            StringHashing.SetOnCollision(null);
        }
        public static string CalculateHash(string tbInput, string cbAlgo, string cbEncFormat, bool rbPosStartChecked, bool rbPosEndChecked, string cbEncTypes, string tbSalt, bool addSalt)
        {
            ResetBaseData();

            SetBaseData(tbInput, "Input Value", cbAlgo, cbEncFormat, rbPosStartChecked, rbPosEndChecked, cbEncTypes, tbSalt, addSalt);

            return(StringHashing.ComputeHash(_plainText, _hashAlgorithm, _salt, _encryptionFormat, _encodingType, _saltPosition, _addSaltToHash));
        }
Exemple #3
0
        public void OnBeforeSerialize()
        {
            if (m_Hash == 0 && !string.IsNullOrEmpty(m_Source))
            {
                m_Hash = StringHashing.Hash32(m_Source, 0, m_Source.Length);
            }

            #if !DEVELOPMENT_BUILD && !DEVELOPMENT
            // TODO: Figure out a way of selectively stripping strings from the non-debug builds
            // if (!BuildPipeline.isBuildingPlayer)
            //     return;

            // m_Source = string.Empty;
            #endif // !DEVELOPMENT_BUILD && !DEVELOPMENT
        }
        private static string SaveHashedFile(string tbImport)
        {
            string fileOutputName = GetOutputFileName(tbImport);

            if (File.Exists(tbImport))
            {
                StreamReader sReader = new StreamReader(tbImport);
                StreamWriter sWriter = new StreamWriter(fileOutputName);

                while (!sReader.EndOfStream)
                {
                    string plainPwd  = sReader.ReadLine();
                    string hashedPwd = StringHashing.ComputeHash(plainPwd, _hashAlgorithm, _salt, _encryptionFormat, _encodingType, _saltPosition, _addSaltToHash);

                    sWriter.WriteLine(plainPwd + ";" + hashedPwd);
                }

                sWriter.Close();
                sReader.Close();
            }

            return(fileOutputName);
        }
Exemple #5
0
 public StringHash64(string inString)
 {
     m_HashValue = StringHashing.StoreHash64(inString, 0, inString == null ? 0 : inString.Length);
 }
Exemple #6
0
 public string ToDebugString()
 {
     return(StringHashing.ReverseLookup64(m_HashValue));
 }
Exemple #7
0
 internal ulong AppendHash64(ulong inHash)
 {
     return(StringHashing.AppendHash64(inHash, m_Source, m_StartIndex, Length));
 }
Exemple #8
0
 internal ulong CalculateHash64()
 {
     return(StringHashing.StoreHash64(m_Source, m_StartIndex, Length));
 }
Exemple #9
0
 internal uint AppendHash32(uint inHash)
 {
     return(StringHashing.AppendHash32(inHash, m_Source, m_StartIndex, Length));
 }
Exemple #10
0
 internal uint CalculateHash32()
 {
     return(StringHashing.StoreHash32(m_Source, m_StartIndex, Length));
 }
 public static byte[] GetSaltByte(string tbSalt, StringUtil.ENCODING_TYPES encodingType)
 {
     return(!string.IsNullOrWhiteSpace(tbSalt) ? StringUtil.GetEncoder(encodingType).GetBytes(tbSalt) : StringHashing.GenerateRandomSalt());
 }
Exemple #12
0
            public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
            {
                label = EditorGUI.BeginProperty(position, label, property);

                Rect propRect = position;

                propRect.width -= TypeDisplayWidth - 4;

                Rect typeRect = new Rect(propRect.xMax + 4, propRect.y, TypeDisplayWidth, propRect.height);

                // type

                int lastIndent = EditorGUI.indentLevel;

                EditorGUI.indentLevel = 0;

                EditorGUI.BeginChangeCheck();

                var         typeProp = property.FindPropertyRelative("m_Type");
                VariantType type     = (VariantType)typeProp.intValue;

                type = (VariantType)EditorGUI.EnumPopup(typeRect, type);

                if (EditorGUI.EndChangeCheck())
                {
                    typeProp.intValue = (int)type;
                }

                EditorGUI.indentLevel = lastIndent;

                // value

                var  rawProp  = property.FindPropertyRelative("m_RawValue");
                uint rawValue = (uint)rawProp.longValue;

                switch (type)
                {
                case VariantType.Null:
                {
                    EditorGUI.LabelField(propRect, label, new GUIContent("Null value"));
                    break;
                }

                case VariantType.Int:
                {
                    int intVal = GetInt(rawValue);
                    int newVal = EditorGUI.IntField(propRect, label, intVal);
                    if (newVal != intVal)
                    {
                        rawProp.longValue = GetRaw(newVal);
                    }
                    break;
                }

                case VariantType.UInt:
                {
                    uint uintVal = rawValue;
                    uint newVal  = (uint)EditorGUI.LongField(propRect, label, uintVal);
                    if (newVal != uintVal)
                    {
                        rawProp.longValue = newVal;
                    }
                    break;
                }

                case VariantType.Float:
                {
                    float floatVal = GetFloat(rawValue);
                    float newVal   = EditorGUI.FloatField(propRect, label, floatVal);
                    if (newVal != floatVal)
                    {
                        rawProp.longValue = GetRaw(newVal);
                    }
                    break;
                }

                case VariantType.Bool:
                {
                    bool boolVal = GetBool(rawValue);
                    bool bNewVal = EditorGUI.Toggle(propRect, label, boolVal);
                    if (bNewVal != boolVal)
                    {
                        rawProp.longValue = GetRaw(bNewVal);
                    }
                    break;
                }

                case VariantType.StringHash:
                {
                    var stringProp = property.FindPropertyRelative("m_StringHashSource");

                    string stringVal = stringProp.stringValue;
                    string newVal    = EditorGUI.TextField(propRect, label, stringVal);
                    if (stringVal != newVal)
                    {
                        stringProp.stringValue = newVal;
                        rawProp.longValue      = StringHashing.Hash32(newVal, 0, newVal.Length);
                    }
                    break;
                }
                }

                EditorGUI.EndProperty();
            }