Exemplo n.º 1
0
        public ItemLists EncryptResult(ItemLists result)
        {
            result.GetType().GetProperties().ToList().ForEach(p =>
            {
                // Edit이나 Create의 경우는 필드를 체크할 필요 없음. - EF의 특성임.

                // Edit에서 암호화 시작
                if (p.Name == "IteamUpdateAdminID" || p.Name == "IteamCreateAdminID" || p.Name == "Id" || p.Name == "Version" || p.Name == "Deleted" || p.Name == "CreatedAt" || p.Name == "UpdatedAt" || p.Name == "HideYN" || p.Name == "DeleteYN")       // 현재 암호화 안하고 통과 시킬 녀석들
                {
                    // 추가 처리
                }
                else
                {
                    // edit을 저장하려 할 경우 EF에서 빈문자열의 경우 null이 들어오고 처리 되지 않는다.
                    // view에서 annotation?
                    // EF의 특성

                    // string이 아닌 datetimeoffset 등에서도 오류가 발생한다. int도 발생하겠지.
                    // reflection 쓰지 말까...
                    Debug.WriteLine(p.PropertyType.FullName);
                    Debug.WriteLine((p.GetValue(result, null) ?? "").ToString());

                    p.SetValue(result, Crypto.AES_encrypt((p.GetValue(result, null) ?? "").ToString(), globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV), null);   // null인 경우 오류 가능성. 빈문자열로 치환해 암호화 한다.

                    //switch (p.PropertyType.FullName)
                    //{
                    //    case "System.String":
                    //        p.SetValue(result, Crypto.AES_encrypt((p.GetValue(result, null) ?? "").ToString(), globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV), null);   // null인 경우 오류 가능성. 빈문자열로 치환해 암호화 한다.
                    //        Debug.WriteLine((p.GetValue(result, null) ?? "").ToString());
                    //        break;
                    //    case "System.DateTimeOffset":
                    //        // 날짜 형식의 필드. 암호화 안한다. 이때도 변환하지 않고 통과.
                    //        //p.SetValue(result, Crypto.AES_encrypt(p.GetValue(result, null), globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV), null);   // null인 경우 오류 가능성
                    //        //Debug.WriteLine((p.GetValue(result, null) ?? "").ToString());
                    //        break;
                    //    default:
                    //        break;
                    //}
                }
                //p.SetValue(result, Crypto.AES_encrypt(p.GetValue(result, null).ToString(), globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV), null);   // null인 경우 오류 가능성
                //Debug.WriteLine((p.GetValue(result, null) ?? "").ToString());

            });

            return result;
        }
Exemplo n.º 2
0
        public ItemLists DecryptResult(ItemLists result)
        {
            result.GetType().GetProperties().ToList().ForEach(p =>
                {
                    if (p.Name == "IteamUpdateAdminID" || p.Name == "IteamCreateAdminID" || p.Name == "Id" || p.Name == "Version" || p.Name == "Deleted" || p.Name == "CreatedAt" || p.Name == "UpdatedAt" || p.Name == "HideYN" || p.Name == "DeleteYN")       // 복호화 안하고 통과 시킬 녀석들
                    {
                        // 추가 처리
                    }
                    else
                    {
                        //Debug.WriteLine((p.GetValue(result, null) ?? "").ToString());
                        p.SetValue(result, Crypto.AES_decrypt((p.GetValue(result, null) ?? "").ToString(), globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV), null);
                        //Debug.WriteLine((p.GetValue(result, null) ?? "").ToString());
                    }
                });

            return result;
        }
Exemplo n.º 3
0
        //암호화 처리
        public ItemLists EncryptResult(ItemLists item)
        {
            try
            {
                item.ItemListID = Crypto.AES_encrypt(item.ItemListID, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.ItemName = Crypto.AES_encrypt(item.ItemName, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.ItemDescription = Crypto.AES_encrypt(item.ItemDescription, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.ItemPrice = Crypto.AES_encrypt(item.ItemPrice, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.ItemSellPrice = Crypto.AES_encrypt(item.ItemSellPrice, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.ItemCategory1 = Crypto.AES_encrypt(item.ItemCategory1, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.ItemCategory2 = Crypto.AES_encrypt(item.ItemCategory2, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.ItemCategory3 = Crypto.AES_encrypt(item.ItemCategory3, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.sCol1 = Crypto.AES_encrypt(item.sCol1, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.sCol2 = Crypto.AES_encrypt(item.sCol2, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.sCol3 = Crypto.AES_encrypt(item.sCol3, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.sCol4 = Crypto.AES_encrypt(item.sCol4, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.sCol5 = Crypto.AES_encrypt(item.sCol5, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.sCol6 = Crypto.AES_encrypt(item.sCol6, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.sCol7 = Crypto.AES_encrypt(item.sCol7, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.sCol8 = Crypto.AES_encrypt(item.sCol8, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.sCol9 = Crypto.AES_encrypt(item.sCol9, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);
                item.sCol10 = Crypto.AES_encrypt(item.sCol10, globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV);

                //result.GetType().GetProperties().ToList().ForEach(p =>
                //{
                //    // 암호화 안할 항복 체크
                //    if (p.Name == "IteamUpdateAdminID" || p.Name == "IteamCreateAdminID" || p.Name == "HideYN" || p.Name == "DeleteYN" || p.Name == "CreatedAt" || p.Name == "UpdatedAt" || p.Name == "DataFromRegion" || p.Name == "DataFromRegionDT")
                //    {
                //        // 추가 처리
                //    }
                //    else
                //    {
                //        Debug.WriteLine(p.PropertyType.FullName);
                //        Debug.WriteLine((p.GetValue(result, null) ?? "").ToString());
                //        p.SetValue(result, Crypto.AES_encrypt((p.GetValue(result, null) ?? "").ToString(), globalVal.CloudBreadCryptKey, globalVal.CloudBreadCryptIV), null);   // null인 경우 오류 가능성. 빈문자열로 치환해 암호화 한다.
                //    }
                //});
            }
            catch (Exception)
            {

                throw;
            }

            return item;
        }