Base64 Encoding/Decoding - 예제

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
	class Program
	{
		static void Main(string[] args)
		{
			Console.WriteLine("암호화");
			Console.WriteLine("=================================");
			string key = string.Empty;
			Console.Write("ID: ");
			key = Console.ReadLine();

			if (string.IsNullOrEmpty(key))
				key = "jincaesar";

			string temp = string.Empty;
			char ch = 'a';
			for (int i = 0; i < key.Length; i++)
			{
				temp += key.Insert(i + 1, Convert.ToString(ch++)).Substring(i, 2);
			}

			Console.WriteLine(temp);

			string value = Convert.ToBase64String(Encoding.GetEncoding("UTF-8").GetBytes(temp));
			Console.WriteLine(value);

			Console.ReadKey();
			Console.WriteLine("");
			Console.WriteLine("복호화");
			Console.WriteLine("=================================");

			value = Encoding.GetEncoding("UTF-8").GetString(Convert.FromBase64String(value));
			temp = string.Empty;
			for (int i = 0; i < value.Length; i++)
			{
				if (i % 2 == 0)
					temp += value.Substring(i, 1);
			}
			Console.WriteLine(temp);

			Console.ReadKey();
		}
	}
}

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by jincaesar

2015/03/23 11:41 2015/03/23 11:41
Response
No Trackback , No Comment
RSS :
http://jincaesar.maru.net/tc/rss/response/143

javascript checkBox

리피터안에 체크박스던.. 걍 쓰이는 체크박스던..
개수를 헤아리는 경우가 있다..
계속 찾기도 귀찮아..
CheckBox..
체크여부






var chkSelect = {
    Init: function () {
        $("input:checkbox").attr("checked", "");
    },

    CheckedTrue: function () {
        if ($("#chkAll").is(":checked")) {
            $("input:checkbox[id*=chkItem]:not(checked)").attr("checked", "checked");
        } else {
            $("input:checkbox[id*=chkItem]:not(checked)").attr("checked", "");
        }
    },

    IsChecked: function () {
        var isChecked = false;
        var count = 0;
        $("input:checkbox[id*=chkItem]:checked").each(function () {
            isChecked = true;
            count = count + 1;
        });

        if (count > 0) {
            alert("총 " + count + "개를 선택했습니다.");
        }

        if (!isChecked) {
            alert('체크하세요');
            return false;
        }
    }
}
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by jincaesar

2011/11/15 13:29 2011/11/15 13:29
Response
No Trackback , No Comment
RSS :
http://jincaesar.maru.net/tc/rss/response/81

간단하게 Request.Form 값 전체 확인해보자..

Request.Form으로 어떤 넘들이 넘어오는지 파악하기..
protected void Page_Load(object sender, EventArgs e)
{        
    foreach(string i in Request.Form.Keys){       
        Response.Write("[" + i + "] 값 :      " + Request.Params[i] + "
"); } }
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by jincaesar

2011/09/27 18:22 2011/09/27 18:22
Response
No Trackback , No Comment
RSS :
http://jincaesar.maru.net/tc/rss/response/73

c# - Date 관련

날짜 관련 C#에서 처리해주기 귀찮다..
그래서 열심히 구글링한 결과 깔끔하게 정리하신 분이 계셔서 허락없이 퍼왔다.. =_=;;
관심꺼리.log님 죄송합니다.

아래는 관심꺼리.log님 블로그
http://odyssey.tistory.com/243

   #region DateFormat 열거형
    /// 
    /// 설  명 : DataFormat 열거형 (TT_DATE : yyyyMMddHHmm, TT_DAY : yyyyMMdd, TT_TIME : HHmmss)
    /// 
    public enum DateFormat
    {
        TT_DATE,  // yyyyMMddHHmm
        TT_DAY,   // yyyyMMdd
        TT_TIME   // HHmmss
    }
    #endregion

    #region 날짜 형식 관련 변환 Method
    /// 
    /// 설  명 : string 날짜(yyyyMMdd) -> DateTime 으로 변환
    /// 
    /// 변환할 string 날짜(yyyyMMdd)
    /// DateTime 날짜
    public static DateTime GetDTDay(string a_sDay)
    {
        DateTime dtDate =
        DateTime.ParseExact(a_sDay, "yyyyMMdd",
        System.Globalization.DateTimeFormatInfo.InvariantInfo,
        System.Globalization.DateTimeStyles.None);
        return dtDate;
    }

    /// 
    /// 설  명 : string 날짜(yyyyMMdd) -> string 날짜(yy/MM/dd)으로 변환
    /// 
    /// 변환할 string 날짜(yyyyMMdd)
    /// string 날짜(yy/MM/dd)
    public static string GetDTDay2(string a_sDay)
    {
        DateTime dtDate = DateTime.ParseExact(a_sDay,
        "yyyyMMdd", System.Globalization.DateTimeFormatInfo.InvariantInfo,
        System.Globalization.DateTimeStyles.None);
        return dtDate.ToString("yy/MM/dd").Replace("-", "/");
    }

    /// 
    /// 설  명 : string 날짜(yyyyMMdd) -> string 날짜(yyyy/MM/dd)으로 변환
    /// 
    /// 변환할 string 날짜(yyyyMMdd)
    /// string 날짜(yyyy/MM/dd)
    public static string GetDTDay3(string a_sDay)
    {
        DateTime dtDate = DateTime.ParseExact(a_sDay,
        "yyyyMMdd", System.Globalization.DateTimeFormatInfo.InvariantInfo,
        System.Globalization.DateTimeStyles.None);
        return dtDate.ToString("yyyy/MM/dd").Replace("-", "/");
    }

    /// 
    /// 설  명 : string 날짜(yyyyMMddHHmm) -> DateTime 으로 변환
    /// 
    /// 변환할 string 날짜(yyyyMMddHHmm)
    /// DateTime 날짜
    public static DateTime GetDTDate(string a_sDate)
    {
        DateTime dtDate = DateTime.ParseExact(a_sDate,
        "yyyyMMddHHmm",
        System.Globalization.DateTimeFormatInfo.InvariantInfo,
        System.Globalization.DateTimeStyles.None);
        return dtDate;
    }

    /// 
    /// 설  명 : DateTime -> string 날짜(yyyyMMdd)으로 변환
    /// 
    /// 변환할 날짜 DateTime
    /// string 날짜(yyyyMMdd)
    public static string GetStrDay(DateTime a_odtDateTime)
    {
        return GetStrDate(a_odtDateTime, DateFormat.TT_DAY);
    }

    /// 
    /// 설  명 : DateTime -> string 시간(HHmm)으로 변환
    /// 
    /// 변환할 날짜 DateTime
    /// string 시간(HHmm)
    public static string GetStrTime(DateTime a_odtDateTime)
    {
        return GetStrDate(a_odtDateTime, DateFormat.TT_TIME);
    }

    /// 
    /// 설  명 : DateTime -> string 날짜(yyyyMMddHHmm)으로 변환
    /// 
    /// 변환할 날짜 DateTime
    /// string 날짜(yyyyMMddHHmmss)
    public static string GetStrDate(DateTime a_odtDateTime)
    {
        return GetStrDate(a_odtDateTime, DateFormat.TT_DATE);
    }

    /// 
    /// 설  명 : DateTime -> string 년도(yyyy)으로 변환
    /// 
    /// 변환할 날짜 DateTime
    /// string 년도(yyyy)
    public static string GetStrYear(DateTime a_odtDateTime)
    {
        return a_odtDateTime.Year.ToString().PadLeft(4, '0');
    }

    /// 
    /// 설  명 : DateTime -> string 월(MM)으로 변환
    /// 
    /// 변환할 날짜 DateTime
    /// string 월(MM)
    public static string GetStrMonth(DateTime a_odtDateTime)
    {
        return a_odtDateTime.Month.ToString().PadLeft(2, '0');
    }

    /// 
    /// 설  명 : DateTime -> string 일(dd)으로 변환
    /// 
    /// 변환할 날짜 DateTime
    /// string 일(dd)
    public static string GetStrDay2(DateTime a_odtDateTime)
    {
        return a_odtDateTime.Day.ToString().PadLeft(2, '0');
    }

    /// 
    /// 설  명 : DateTime -> 한글 요일로 변환
    /// 
    /// 변환할 날짜 DateTime
    /// string 한글 요일
    public static string GetStrDayOfWeek(DateTime a_odtDateTime)
    {
        switch (a_odtDateTime.DayOfWeek)
        {
            case DayOfWeek.Monday:
                return "월";
            case DayOfWeek.Tuesday:
                return "화";
            case DayOfWeek.Wednesday:
                return "수";
            case DayOfWeek.Thursday:
                return "목";
            case DayOfWeek.Friday:
                return "금";
            case DayOfWeek.Saturday:
                return "토";
            case DayOfWeek.Sunday:
                return "일";
        }
        return "";
    }

    /// 
    /// 설  명 : DateTime -> 오전/오후로 변환
    /// 
    /// 변환할 날짜 DateTime
    /// K: 오전/오후, E:AM/PM
    /// string 오전/오후
    public static string GetStrAmPm(DateTime a_odtDateTime, string strLang)
    {
        try
        {
            if (a_odtDateTime.Hour > 12)
            {
                if (strLang.Equals("K"))
                    return "(오후) ";
                else
                    return "(PM) ";
            }
            else
            {
                if (strLang.Equals("K"))
                    return "(오전) ";
                else
                    return "(AM) ";
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    /// 
    /// 설  명 : DateTime -> string 날짜(DateFormat)로 변환
    /// 
    /// 변환할 날짜 DateTime
    /// DateFormat 열거형
    /// string 날짜(DateFormat)
    public static string GetStrDate(DateTime a_odtDateTime, DateFormat a_tDateFormat)
    {
        string sEditDate = null;
        DateTime dtDateTime;
        if (a_odtDateTime.Equals(DateTime.MinValue))
        {
            dtDateTime = DateTime.Now;
        }
        else
        {
            dtDateTime = a_odtDateTime;
        }
        string sDay = dtDateTime.ToString("yyyyMMdd");
        string sTime = dtDateTime.ToString("HHmm");

        switch (a_tDateFormat)
        {
            case DateFormat.TT_DATE:
                sEditDate = sDay + sTime;
                break;
            case DateFormat.TT_DAY:
                sEditDate = sDay;
                break;
            case DateFormat.TT_TIME:
                sEditDate = sTime;
                break;
        }
        return sEditDate;
    }

    /// 
    /// 설  명 : DateTime -> string 날짜 포맷에 맞는 string 날짜로 변환
    /// 
    /// 변환할 날짜 DateTime
    /// 변환할 string 날짜 포맷
    /// string 날짜
    public static string GetStrFormatDate(DateTime a_odtDateTime, string a_tDateFormat)
    {

        DateTime dtDateTime;
        try
        {
            if (a_odtDateTime.Equals(DateTime.MinValue))
            {
                dtDateTime = DateTime.Now;
            }
            else
            {
                dtDateTime = a_odtDateTime;
            }
            return a_odtDateTime.ToString(a_tDateFormat).Replace("-", "/");
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    /// 
    /// 설  명 : 여러가지 string 날짜를 string 날짜에 맞는 날짜 포맷으로 -> DateTime으로 변환
    /// 
    /// 변환할 string 날짜
    /// 변환할 string 날짜에 맞는 날짜 포맷
    /// DateTime 날짜
    public static DateTime GetDateTimeFormatString(string a_sDate, string a_sFormat)
    {
        try
        {
            DateTime dtDate = DateTime.ParseExact(a_sDate, a_sFormat, System.Globalization.DateTimeFormatInfo.InvariantInfo, System.Globalization.DateTimeStyles.None);
            return dtDate;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    /// 
    /// 설  명 : string 날짜(yyyyMMdd)  -> string 날짜(yyyy-MM-dd)로 변환
    /// 
    /// 변환할 string 날짜(yyyyMMdd)
    /// string 날짜(yyyy-MM-dd)
    public static string GetDateTimeFormat(string strDate)
    {
        string strReturn = string.Empty;
        try
        {
            // 변환하려는 날짜가 8자리 이상이어야 함.
            if (strDate.Length > 7)
            {
                strDate = strDate.Replace("-", "");
                strReturn = strDate.Substring(0, 4) + "-" + strDate.Substring(4, 2) + "-" + strDate.Substring(6, 2);
            }
            return strReturn;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    /// 
    /// string 날짜(yyyyMMdd) -> string 날짜(yyyy년 MM월 dd일 수요일)로 변환
    /// 
    /// 변환할 string 날짜(yyyyMMdd)
    /// string 날짜(yyyy년 MM월 dd일 수요일)
    public static string GetQTDate(string strDate)
    {
        switch (strDate.Length)
        {
            case 8:
                return GetDTDay(strDate).ToString("yyyy년 MM월 dd일 ") + GetStrDayOfWeek(GetDTDay(strDate)) + "요일";
            case 12:
                return GetDTDate(strDate).ToString("yyyy년 MM월 dd일 ") + GetStrDayOfWeek(GetDTDate(strDate)) + "요일";
            default:
                return string.Empty;
        }
    }

    /// 
    /// string 날짜(yyyyMMdd) -> string 날짜(yyyy년 MM월 dd일)로 변환
    /// 
    /// string 날짜(yyyyMMdd)
    /// string 날짜(yyyy년 MM월 dd일)
    public static string GetNoticeDate(string strDate)
    {
        return GetDTDay(strDate).ToString("yyyy년 MM월 dd일");
    }
    #endregion
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by jincaesar

2011/09/09 09:31 2011/09/09 09:31
Response
No Trackback , No Comment
RSS :
http://jincaesar.maru.net/tc/rss/response/68

C# 한글, 영문, 숫자 체크

#region #. CheckEnglish
/// 
/// 영문체크
/// 
/// 문자
/// 
public static bool CheckEnglish(string letter)
{
	bool IsCheck = true;

	Regex engRegex = new Regex(@"[a-zA-Z]");
	Boolean ismatch = engRegex.IsMatch(letter);

	if (!ismatch)
	{
		IsCheck = false;
	}

	return IsCheck;
}
#endregion

#region #. CheckNumber
/// 
/// 숫자체크
/// 
/// 문자
/// 
public static bool CheckNumber(string letter)
{
	bool IsCheck = true;

	Regex numRegex = new Regex(@"[0-9]");
	Boolean ismatch = numRegex.IsMatch(letter);

	if (!ismatch)
	{
		IsCheck = false;
	}

	return IsCheck;
}
#endregion

#region #. CheckEnglishNumber
/// 
/// 영문/숫자체크
/// 
/// 문자
/// 
public static bool CheckEnglishNumber(string letter)
{
	bool IsCheck = true;

	Regex engRegex = new Regex(@"[a-zA-Z]");
	Boolean ismatch = engRegex.IsMatch(letter);
	Regex numRegex = new Regex(@"[0-9]");
	Boolean ismatchNum = numRegex.IsMatch(letter);

	if (!ismatch && !ismatchNum)
	{
		IsCheck = false;
	}

	return IsCheck;
}
#endregion
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by jincaesar

2010/12/08 10:58 2010/12/08 10:58
Response
No Trackback , No Comment
RSS :
http://jincaesar.maru.net/tc/rss/response/48

Repeater 안에 RadioButton을 넣을 경우..

Repeater 안에 RadioButton을 넣을 경우..
실행해서 클릭하면.. 이 넘들은 각각 놀고 있다...
음.. GroupName을 안해서 그런가.. 하고 GroupName을 넣어놓고..
다시 실행해서 클릭해보면.. 걍 쌩까고 따로 논다.. =_=;;

뭔일인가.. 하고.. HTML 소스를 봤더니만..
이런.. WinForm만 하느라..
Repeater 특성상.. 각 Row에 각각의 이름이 들어가는걸 깜빡했다.. =_=;;


이 넘을 html 소스보기하면..

GroupName이 각 Row마다 앞에 있는 ctl101.. ctl102.. 이렇게 증가되어 있는걸 볼수 있다..
원인은 간단하게 찾았는뎅.. 어케 해결하나.. 걱정은 하나도 안했다..
바로 구글링해버렸으니.. ㅋ
http://www.codeguru.com/csharp/csharp/c ··· 12371%2F
이 글을 쓴 아저씨.. 에릭 스미스씨는 Repeater 자기 취향이라는 얘기를 하면서 RadioButton을 넣으면 문제가 발생한다고 한다.
ㅇㅇ 그래서 여기 왔지..
이 아저씨도.. Microsoft 뉴스그룹에서 제공하는걸 사용했다고 하는 듯..
(아.. 영어가 짧아서.. ㅠㅠ)
이 아저씨는 일단.. 자바스크립트를 만들었다..

function SetUniqueRadioButton(nameregex, current) {
    re = new RegExp(nameregex);
    for (i = 0; i < document.forms[0].elements.length; i++) {
        elm = document.forms[0].elements[i]
        if (elm.type == 'radio') {
            if (re.test(elm.name)) {
                elm.checked = false;
            }
        }
    }
    current.checked = true;
}
음.. 뭔가 심오하다.. =_=;;
난데없이 외계어에 봉착.. ㅠㅠ
일단.. nameregex.. 이름을 정규식으로 어케해서.. 돌려서.. RadioButton 찾은 다음에..
체크한 넘이 아니면.. checked =false;로 만들어버린다..
이런 얘기를 하는거 같다.. =_=;;;;

이 담에는 라디오버튼에 이벤트를 줘서.. 클릭시 위의 자바스크립트를 호출하면 될듯..
라디오버튼에 이벤트를 주기 위해서는 Repeater_ItemDataBound에 넣어주면 된다..
protected void rptPortfolios_ItemDataBound(object sender,
                                           RepeaterItemEventArgs e)
{
   if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType
      != ListItemType.AlternatingItem)
      return;

   RadioButton rdo = (RadioButton)e.Item.FindControl("RadioButton1");
   string script =
      "SetUniqueRadioButton('Repeater1.*gnRbtn',this)";
   rdo.Attributes.Add("onclick", script);

}
모 간단하넹.. =_=;;;
실행해보니.. 된다... =_=;;
되므로.. 끄~~~~~읏!!
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by jincaesar

2010/07/21 10:03 2010/07/21 10:03
Response
No Trackback , No Comment
RSS :
http://jincaesar.maru.net/tc/rss/response/46

Repeater의 Row에 Click Event 넣기 2탄....

aspx 소스를 보면.. 이전 소스랑 크게 다른거는 없다..
Repeater에 데이타 바인딩만했을 뿐..
단지.. tr과 td에.. id와 사용자정의 테그(?) fieldname 만 주었을 뿐...
        
            
                
                    Board Seq
                
                
                    Category ID
                
                
                    Category Name
                
            
        
        
            
                
                    <%# DataBinder.Eval(Container.DataItem, "BoardSeq") %>
                
                
                    <%# DataBinder.Eval(Container.DataItem, "CategoryID") %>
                
                
                    <%# DataBinder.Eval(Container.DataItem, "CategoryName") %>
                
            
        
    


모.. 자바스크립트 코드는 비슷하다..
aspx에서 id와 fieldname을 찾아서.. TextBox에 넣어주는 구문이 더 있을뿐...
아래에 param이라는 변수는 QueryString 값으로 여러 값이 넘어갈때..
사용하기 위해 일부러 만들어 놓은 것이다.




크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by jincaesar

2010/03/19 16:11 2010/03/19 16:11
Response
No Trackback , No Comment
RSS :
http://jincaesar.maru.net/tc/rss/response/24

Repeater의 Row에 Click Event 넣기..

예전엔.. Column에 <a> 를 주어 링크를 걸거나.. 해당 데이터를 다시 불러오곤 했다.

이번엔... jQuery, id, tab Name(?)을 이용해서  링크를 걸어보자..



위의 자바스크립트는  Element내에.. tr이라는 tagName이 있으면..
td를 찾아서 fieldName에 해당하는 text를 가져와서 링크를 걸어 준것이다.

아래 aspx 페이지에서 repeater내에 들어가는 table내에.. ItemTemplate내에 tr에다..
id="trBoardList"라고 이름을 준 다음..
onclick 이벤트에 자바스크립트를 호출하였다.. onclick="javascript:OnClickIt(this);" 
tr에 마우스를 올렸을 때 커서 모양을 Hand 로 변경해주면.. 끝..style="cursor:hand;"



Board No. Board ID. Board Name.
<%# DataBinder.Eval(Container.DataItem, "BoardSeq") %> <%# DataBinder.Eval(Container.DataItem, "BoardID")%> <%# DataBinder.Eval(Container.DataItem, "BoardName")%>
헐.. 몇년만에.. 다시 보는뎅.. 어디간겨?? =_=;;
OnClick가 없넹.. =_=;;
<tr id="trBoardList" onclick="OnClickIt(this);">
    <td fieldName="CompanyCode"></td>
</tr>

아놔 귀찮아서..
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by jincaesar

2010/03/19 14:00 2010/03/19 14:00
Response
No Trackback , No Comment
RSS :
http://jincaesar.maru.net/tc/rss/response/23

[Tip] PostBack 시 스크롤 위치 고정시키기..

Ajax를 사용하지 않을 때에.. 버튼이나.. DropDowlList 변경시 PostBack 이 일어나며..
스크롤 위치가 상단으로 이동하는 경우를 확인 할 수 있다.

그러고 싶지 않을 때 사용하는 팁..

web.config

    
        
    


aspx page
<%@ Page Language="C#" MaintainScrollPositionOnPostback="true" %>

web.config에서..
이거 추가해주고..
페이지에서..
MaintainScrollPositionOnPostback="false"이거 추가해주면 끝~~
기본 MaintainScrollPositionOnPostback="false"이기 땜시.. 이것을 true로 바꿔주면 된다.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by jincaesar

2010/03/18 16:48 2010/03/18 16:48

비동기 파일업로드...

파일 업로드를 비동기방식으로 하는 방법을 찾다 찾다..
결국...

AjaxControlToolkit에서.. 찾았다.. =_=;;

쓰는 방법은 기본 .NET Control이랑 똑같다..




    
        



06. AjaxControl Toolkit에 있는 AsyncFileUpload를 올려 놓구..
10. Triggers에 AsyncPostBackTrigger에 버튼을 설정하면 끝..
protected void Button2_Click(object sender, EventArgs e)
{
    Boolean fileOk = false;

    string saveDir = @"\FileUpload\";
    string appPath = Request.PhysicalApplicationPath;

    if (AsyncFileUpload1.HasFile)
    {
        string fileExtension = Path.GetExtension(AsyncFileUpload1.FileName).ToLower();
        string[] allowedExtensions = { ".gif", ".png", ".jpeg", ".jpg" };

        for (int i = 0; i < allowedExtensions.Length; i++)
        {
            if (fileExtension == allowedExtensions[i])
            {
                fileOk = true;
            }
        }
    }

    if (fileOk)
    {
        try
        {
            string savePath = appPath + saveDir + Server.HtmlEncode(AsyncFileUpload1.FileName);
            AsyncFileUpload1.SaveAs(savePath);
            Label1.Text = "Your file was uploaded successfully.";
        }
        catch (Exception ex)
        {
            Label1.Text = "File could not be uploaded.
" + ex.Message; } } else { Label1.Text = "You did not specify a file to upload."; } }
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by jincaesar

2010/03/12 11:02 2010/03/12 11:02
, ,
Response
No Trackback , No Comment
RSS :
http://jincaesar.maru.net/tc/rss/response/20