blog.darkstar.work - a simple url encoder/decoder

 a simple url encoder/decoder
 http://blog.darkstar.work

Labels

Wirtschaft (149) Pressefreiheit (123) Österreich (120) IT (95) code (60) Staatsschulden (37) EZB (27) Pensionssystem (16)

2014-07-19

a simple twitter login tester in C#

using System.Collections.Generic;
using System.Collections.Specialized;
using System.Net;
using System.IO;
using System.Web;
using System.Windows.Forms;
// [...]

namespace TweetBotTestForm
{
    public partial class Form1 : Form
    {
        const string AUTHURL = "https://twitter.com/sessions";

        public Form1()
        {
            InitializeComponent();
            this.textUsername.Text = "AAA@BBB";
            this.textPassword.Text = "XXXXXXX";
        }
    

        private void buttonLogin_Click(object sender, EventArgs e)
        {
            this.textOutput.Clear();
            this.textOutput.Text = string.Format(
                "Posting Username \'{0}\' Password \'{1}\' in {2}\r\n\n",
                this.textUsername.Text, this.textPassword.Text, AUTHURL);

            Dictionary<string, string> postParams =
                new Dictionary<string, string>();

            postParams.Add("session[username_or_email]", textUsername.Text);
            postParams.Add("session[password]", textPassword.Text);
            postParams.Add("remember_me", "0");
            postParams.Add("redirect_after_login", "/");

            string responseText = this.HttpPostLogin(AUTHURL, postParams);
            this.textOutput.Text += "AuthToken: " + responseText + "\r\n\n";

            string webResultText = this.LoginTweet(AUTHURL,
                this.textUsername.Text, this.textPassword.Text);
            this.textOutput.Text += "WebClient: " + webResultText + "\r\n\n";

        }       

        /// <summary>
        /// twitter login test
        /// by using System.Net.WebClient class
        /// </summary>
        /// <param name="authUrl">twitter session url</param>
        /// <param name="username">username</param>
        /// <param name="password">password</param>
        /// <returns>AuthToken</returns>
        protected string LoginTweet(
            string authUrl,
            string username,
            string password
        )
        {
            WebClient webClient = new WebClient();

            NameValueCollection formData = new NameValueCollection();
            // formData["authenticity_token"] = "3f962756ee8ab2afb0e0cb35ae1c97117844a6c7";
            formData["remember_me"] = "0";
            formData["redirect_after_login"] = "/";
            formData["return_to_ssl"] = "false";
            formData["scribe_log"] = string.Empty;
            formData["session[username_or_email]"] = username;
            formData["session[password]"] = password;

           
            byte[] responseBytes =
                webClient.UploadValues(authUrl, "POST", formData);
            string result = Encoding.UTF8.GetString(responseBytes);

            webClient.Dispose();

            string authResponse = ParseTwitterSession(ref result);

            return authResponse; // result;
        }

        /// <summary>
        /// twitter login test
        /// by using System.Net.HttpWebRequest/HttpWebResponse class
        /// </summary>
        /// <param name="authUrl"></param>
        /// <param name="postParameters"></param>
        /// <returns></returns>
        protected string HttpPostLogin(
            string authUrl,
            Dictionary<string, string> postParameters
        )
        {
            string postData = "";

            foreach (string key in postParameters.Keys)
            {
                postData += HttpUtility.UrlEncode(key) + "="
                      + HttpUtility.UrlEncode(postParameters[key]) + "&";
            }

            HttpWebRequest myHttpWebRequest =
                (HttpWebRequest)HttpWebRequest.Create(authUrl);
            myHttpWebRequest.Method = "POST";

            byte[] data = Encoding.ASCII.GetBytes(postData);

            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
            myHttpWebRequest.ContentLength = data.Length;

            Stream requestStream = myHttpWebRequest.GetRequestStream();
            requestStream.Write(data, 0, data.Length);
            requestStream.Close();

            HttpWebResponse myHttpWebResponse =
                (HttpWebResponse)myHttpWebRequest.GetResponse();

            this.textOutput.Text += "\r\n Cookie Count = " +
                myHttpWebResponse.Cookies.Count.ToString();
            this.textOutput.Text += "\r\n Header = " +
                myHttpWebResponse.Headers.ToString();
            this.textOutput.Text += "\r\n";

            Stream responseStream = myHttpWebResponse.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(
                responseStream,
                Encoding.Default
            );
            string pageContent = myStreamReader.ReadToEnd();

            myStreamReader.Close();
            responseStream.Close();
            myHttpWebResponse.Close();

            string authResponse = ParseTwitterSession(ref pageContent);

            return authResponse; // pageContent;
        }


        /// <summary>
        /// Dummy html code in response parsing
        /// very quick & dirty implemented
        /// </summary>
        /// <param name="pageContent">html response from webclient</param>
        /// <returns>authentication_token</returns>
        protected static string ParseTwitterSession(ref string pageContent)
        {
            string authResponse = string.Empty;
            if (pageContent.IndexOf("authenticity_token") < 0)
            {
                return authResponse;
            }
            pageContent = pageContent.Substring(

                pageContent.IndexOf("authenticity_token") + 18);

            while (pageContent.IndexOf("value=\"") > -1)
            {
                pageContent = pageContent.Substring(
                    pageContent.IndexOf("value=") + 8
                );
                if (pageContent.IndexOf('\"') > -1)
                {
                    string valueString =
                        pageContent.Substring(
                            0,
                            pageContent.IndexOf("\"")
                        );

                    if (valueString.Length > 37)
                    {
                        authResponse = valueString;
                        break;
                    }
                }
                else
                {
                    authResponse = string.Empty;
                    break;
                }
            }
            return authResponse;
        }

    }
}



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections.Specialized;
using System.Net;
using System.IO;
using System.Web;

namespace TwitterTestLogon
{
    public partial class TweetLogin : Form
    {
        const string AUTHURL = "https://twitter.com/sessions";

        public TweetLogin()
        {
            InitializeComponent();
            this.textUsername.Text = "myemail@mydomain.org";
            this.textPassword.Text = "mypassword";
        }
  

        /// <summary>
        /// event that is fired, when buttonLogin clicked
        /// </summary>
        /// <param name="sender">sender, that fires event</param>
        /// <param name="e">EventArgs e</param>
        private void buttonLogin_Click(object sender, EventArgs e)
        {
            this.textOutput.Clear();
            this.textOutput.Text = string.Format(
                "Posting Username \'{0}\' Password \'{1}\' in {2}\r\n\n",
                this.textUsername.Text, this.textPassword.Text, AUTHURL);

            // create Dictionary<string, string> postParams with default parameters to post for twitter login
            Dictionary<string, string> postParams = new Dictionary<string, string>();
            postParams.Add("session[username_or_email]", textUsername.Text);
            postParams.Add("session[password]", textPassword.Text);
            postParams.Add("remember_me", "0");
            postParams.Add("redirect_after_login", "/");
            postParams.Add("return_to_ssl", "false");
            // postParams.Add("scribe_log", string.Empty);


            // get authentication Parameters from twitter Login via HttpPostLogin(AUTHURL, postParams);
            Dictionary<string, string> authTwitterParams = this.HttpPostLogin(AUTHURL, postParams);
            // write authentication Parameters to TextBox textOutput
            this.textOutput.Text += "\r\nTwitter Login POSTING via HttpWebRequest: \r\n";
            foreach (string ikey in authTwitterParams.Keys)
            {
                string ivalue =  authTwitterParams[ikey];
                this.textOutput.Text += ikey + " \t= "
                    + authTwitterParams[ikey] + "\r\n";
                
                try
                {
                    // add 4 authentication twitter parameters to postParams
                    if (ikey.StartsWith("Set-Cookie"))
                    {
                        string guest_id = HttpUtility.UrlDecode(ParseTwitterSession(ivalue, "guest_id"));
                        postParams.Add("guest_id", guest_id);
                        this.textOutput.Text += "guest_id" + " \t= " + guest_id + "\r\n";

                        string _twitter_sess = ParseTwitterSession(ivalue, "_twitter_sess");
                        postParams.Add("_twitter_sess", _twitter_sess);
                        this.textOutput.Text += "_twitter_sess" + " \t= " + _twitter_sess + "\r\n";

                        string ct0 = ParseTwitterSession(ivalue, "ct0");
                        postParams.Add("ct0", ct0);
                        this.textOutput.Text += "ct0" + " \t= " + ct0 + "\r\n";

                        string tdomain  = ParseTwitterSession(ivalue, "Domain");
                        postParams.Add("Domain", tdomain);
                        this.textOutput.Text += "Domain" + " \t= " + tdomain + "\r\n";
                    }   
                }
                catch (Exception ex)
                {
                    this.textOutput.Text += "\r\nException: " + ex.ToString() + "\r\n";
                }
            }

            // pass postParams from Dictionary<string, string> to NameValueCollection formData 
            NameValueCollection formData = new NameValueCollection();
            foreach (string pkey in postParams.Keys) { formData[pkey] = postParams[pkey]; }

            // get authentication Parameters from twitter Login via WebClientLoginTwitter(AUTHURL, formData);
            Dictionary<string, string> gotAuthParams = this.WebClientLoginTwitter(AUTHURL, formData);
            // write authentication Parameters to TextBox textOutput
            this.textOutput.Text += "\r\nTwitter Login POSTING via WebClient: \r\n";
            foreach (string ikey in gotAuthParams.Keys)
            {
                this.textOutput.Text += ikey + " \t= "
                        + gotAuthParams[ikey] + "\r\n";
            }            

        }
  

        /// <summary>
        /// twitter login test
        /// by using System.Net.HttpWebRequest/HttpWebResponse class
        /// </summary>
        /// <param name="authUrl">twitter session url</param>
        /// <param name="postParameters">parameter collection, that will be POSTed urlencoded to requested authUrl</param>
        /// <returns>Dictionary<string, string> authParams from response Headers and authenticity_token from response body</returns>
        protected Dictionary<string, string> HttpPostLogin(
   string authUrl, 
   Dictionary<string, string> postParameters
  )
        {
            string postData = "";
            // add all postParameters as an UrlEncoded string
            foreach (string key in postParameters.Keys)
            {
                postData += HttpUtility.UrlEncode(key) + "="
                      + HttpUtility.UrlEncode(postParameters[key]) + "&";
            }
            // get postData as byte[]
            byte[] data = Encoding.ASCII.GetBytes(postData);

            // create HttpWebRequest via authUrl // set POST Method, ContentType, ContentLength
            HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(authUrl); 
            myHttpWebRequest.Method = "POST";
            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
            myHttpWebRequest.ContentLength = data.Length;

            // Write postParameters as byte[] to RequestStream of created HttpWebRequest
            Stream requestStream = myHttpWebRequest.GetRequestStream();
            requestStream.Write(data, 0, data.Length);
            requestStream.Close();

            // get HttpWebResponse now from HttpWebRequest
            HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

            // create twitterResponseHeaders Dictionary<string, string> 
            Dictionary<string, string> twitterResponseHeaders = new Dictionary<string, string>();

            // add key values from HttpWebResponse.Headers to twitterResponseHeaders Dictionary<string, string> 
            foreach (string hkey in myHttpWebResponse.Headers.AllKeys)
            {
                string hvalue = myHttpWebResponse.Headers[hkey];
                twitterResponseHeaders.Add(hkey, hvalue);
            }

            // get ResponseStream from HttpWebResponsem, read Content of ResponseStream and store it in string pageContent
            Stream responseStream = myHttpWebResponse.GetResponseStream();
            StreamReader myStreamReader = new StreamReader(responseStream, Encoding.Default);
            string pageContent = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            responseStream.Close();

            // close HttpWebResponse received from HttpWebRequest
            myHttpWebResponse.Close();

            // parse authenticity_token hidden form value from received pageContent
            string authenticity_token = ParseTwitterAuthValue(ref pageContent, "authenticity_token");
            // and add it to twitterResponseHeaders Dictionary<string, string> 
            twitterResponseHeaders.Add("authenticity_token", authenticity_token);

            return twitterResponseHeaders; // pageContent;
        }
  

        /// <summary>
        /// twitter login test
        /// using System.Net.WebClient class
        /// </summary>
        /// <param name="authUrl">twitter session url</param>
        /// <param name="authParams">parameter collection, that will be POSTed as NameValueCollection formData to requested authUrl</param>
        /// <returns>Dictionary<string, string> authParams from response Headers and authenticity_token from response body</returns>
        protected Dictionary<string, string> WebClientLoginTwitter(
   string authUrl, 
   NameValueCollection formData
  )
        {
            WebClient webClient = new WebClient();

            // add authParams to NameValueCollection formData
           

            // POST to authUrl pairs in NameValueCollection formData via WebClient.UploadValues
            byte[] responseBytes = webClient.UploadValues(authUrl, "POST", formData);
            string result = Encoding.UTF8.GetString(responseBytes);

            Dictionary<string, string> responseHeaders = new Dictionary<string, string>();
            for (int rh = 0; rh < webClient.ResponseHeaders.Keys.Count; rh++)
            {
                string rhkey = webClient.ResponseHeaders.Keys[rh];
                string rhvalue = webClient.ResponseHeaders[rhkey];
                responseHeaders.Add(rhkey, rhvalue);
            }

            webClient.Dispose();
            
            string authResponse = ParseTwitterAuthValue(ref result, "authenticity_token");
            responseHeaders.Add("authenticity_token", authResponse);

            return responseHeaders; // result;
        }

  
        /// <summary>
        /// Dummy html code in response parsing
        /// very quick & dirty implemented
        /// </summary>
        /// <param name="pageContent">html response from webclient or httpwebresponse</param>
        /// <returns>authentication_token</returns>
        protected static string ParseTwitterAuthValue(ref string pageContent, string parseString)
        {
            int parseStringLength = parseString.Length; 
            if (string.IsNullOrEmpty(parseString) || (parseStringLength < 2)) {
                throw new ArgumentException("ParseTwitterSession(ref string pageContent, string parseString)\r\n, parseString is null, empty or to short for parse...");
            }
            
            string authResponse = string.Empty;
            if (pageContent.IndexOf(parseString) < 0)
            {
                return authResponse;
            }
            pageContent = pageContent.Substring(
                pageContent.IndexOf(parseString) + parseStringLength);

            while (pageContent.IndexOf("value=\"") > -1)
            {
                pageContent = pageContent.Substring(
                    pageContent.IndexOf("value=") + 8
                );
                if (pageContent.IndexOf('\"') > -1)
                {
                    string valueString =
                        pageContent.Substring(
                            0,
                            pageContent.IndexOf("\"")
                        );

                    if (valueString.Length > 37)
                    {
                        authResponse = valueString;
                        break;
                    }
                }
                else
                {
                    authResponse = string.Empty;
                    break;
                }
            }
            return authResponse;
        }

  
        /// <summary>
        /// Dummy html code in response parsing
        /// very quick & dirty implemented
        /// </summary>
        /// <param name="pageContent">html response from webclient or httpwebresponse</param>
        /// <returns>authentication_token</returns>
        protected static string ParseTwitterSession(string contentForSearch, string parseString)
        {
            int parseStringLength = parseString.Length;
            if (string.IsNullOrEmpty(parseString) || (parseStringLength < 2))
            {
                throw new ArgumentException("ParseTwitterSession(ref string pageContent, string parseString)\r\n, parseString is null, empty or to short for parse...");
            }
            string content2Parse = contentForSearch;
            string parsedValue = string.Empty;

            if (content2Parse.IndexOf(parseString) < 0)
            {
                return parsedValue;
            }
            content2Parse = content2Parse.Substring(
                content2Parse.IndexOf(parseString) + parseStringLength);

            while (content2Parse.IndexOf("=") > -1)
            {
                content2Parse = content2Parse.Substring(
                    content2Parse.IndexOf("=") + 1
                );
                if (content2Parse.IndexOf(';') > -1)
                {
                    string valueString =
                        content2Parse.Substring(
                            0,
                            content2Parse.IndexOf(";")
                        );

                    if (valueString.Length > 1)
                    {
                        parsedValue = valueString;
                        break;
                    }
                }
                else
                {
                    parsedValue = content2Parse;
                    break;
                }
            }
            return parsedValue;
        }

    }
}

2014-07-13

decode OpenSSL PrivateKey with user salt in C#

  1. public static byte[UserSalzDerAndroschErhalts(string saltIn, out string saltOut{
  2.   StringReader sreader = new StringReader(saltIn);
  3.   saltOut = String.Empty;
  4.   if(!sreader.ReadLine().StartsWith("Proc-Type: 4,ENCRYPTED"))
  5.     return null;

  6.   string saltline = sreader.ReadLine();
  7.   if(!saltline.StartsWith("DEK-Info: DES-EDE3-CBC,") )
  8.     return null;

  9.   string saltstr saltline.Substring(saltline.IndexOf(",") + 1).Trim();

  10.   byte[] saltbytes = new byte[saltstr.Length/2];
  11.   for (int i 0; i saltbytes.Length; i++) {
  12.     saltbytes[i] = Convert.ToByte(saltstr.Substring (22)16);
  13.   }

  14.   if (!(sreader.ReadLine() == ""))
  15.     return null;
  16.   // read rest of base64 data and you have the RSA key
  17.   saltOut = sreader.ReadToEnd() 
  18.   // Console.Writeln("cryptkey " + saltOut);
  19.   return saltbytes;
  20. }  
  1. public static byte[] DecodeOpenSSLPrivateKey(string instr{
  2.   const string pemprefix = "-----BEGIN RSA PRIVATE KEY-----" ;
  3.   const string pemsuffix = "-----END RSA PRIVATE KEY-----" ;
  4.   string pemstr = instr.Trim() ;
  5.   if(!pemstr.StartsWith(pemprefix) || !pemstr.EndsWith(pemsuffix)) {
  6.     throw new ArgumentException("missing BEGIN or END sequence of RSA private Key");
  7.   }

  8.   string pvkstr = 
  9.     pemstr.Replace(pemprivheader, "").Replace(pemprivfooter, "").Trim(); //remove
  10.   
  11.   byte[] binkey;
  12.   try { // there aren't any PEM encryption infos => UNencrypted PEM private key
  13.     binkey = Convert.FromBase64String(pvkstr) ;
  14.     return binkey;
  15.   }
  16.   catch(System.FormatException) { 
  17.     //Console.WriteLine("We have a full encrypted OpenSSL PEM private key");  
  18.   }

  19.   string encryptedstr = string.Empty;

  20.   // read crypted chiffer lets extract salt
  21.   byte[] salt = UserSalzDerAndroschErhalts(pvkstr, out encryptedstr);
  22.   if (salt == null || string.IsNullOrEmpty(encryptedstr)) {
  23.     throw new ArgumentException("invalid RSA private Key");
  24.   }

  25.   try { // it's an encrypted RSA key?
  26.     binkey = Convert.FromBase64String(encryptedstr);
  27.   }
  28.   catch(System.FormatException) {  
  29.     throw; // rethrow the Exception
  30.   }
  31.   // 3DES SSL key fetch 
  32.   SecureString passwd3DES = GetSecPswd("Enter password for 3DESkey==>") ;
  33.   // Console.Write("\nEnter password for key: ");
  34.   // string passwd = Console.ReadLine();
  35.   byte[] tripledes = GetOpenSSL3deskey(salt, passwd3DES, 12);    
  36.   if (tripledes == null{
  37.     throw new ArgumentException("error decrypting 3DES key\n" + salt.ToString());
  38.   }
  39.   // Decrypt the encrypted 3DES key by using salt from PEM header
  40.   // same method how anonymous hacked IV
  41.   byte[] rsakey = DecryptKey(binkey, tripledes, salt);    
  42.   if (rsakey == null{
  43.     throw new ArgumentException("error decrypting 3DES key\n" + salt.ToString());
  44.   }

  45.   return rsakey; // return decrypted RSA private key
  46. }

2014-06-22

Comparing macro economic indicators of Serbia with Austria

see http://www.tradingeconomics.com/serbia/indicators and http://www.tradingeconomics.com/austria/indicators

What could be the benefits of Serbia, how can Serbia recover?

Inflation rate in Serbia is at 2.1% and at 1.8% in Austria
Consumer price index (CPI) is at 180.2 in Serbia and at 110 in Austria (Serbia : Austria +63%)
If we compare consumer prices and inflation indicators to prime and key interest rates, then we might wonder:
On June 12th serbian central bank cuts its prime rates by (- 0.50) to very proud 8.50%.

Before we enjoy too fast over high interest rates in Serbia, we have at first take a look at the exchange rate of Euro to serbian Dinar:
http://www.finanzen.at/devisen/chart/euro-serbischer_dinar-kurs
Well the € climbed up from 114,5 one year ago to 115,5 (that's about +0.8% not much compared to prime rate difference). However, other things in that forex chart scare me a little bit.
Hätte jemand vor einem Jahr Geld auf ein Sparbuch in serbischen Dinar gelegt, dann hätte das 8,5% Guthabenzinsen und -0,8 Wechselkursverlust zum Euro gebracht.
A negative point for Serbia are not heavy but slight problems in the balance of payments, current account and trade balance.

The biggest advantage of Serbia are very appropriate business friendly taxes.
Social security contributions are almost as high as in Austria. (But don't forget, that Serbia still has to provide war disability pensions  for heavy wounded soldiers as part from social security.)

2014-06-09

No infinite eternal growth

A good friend and honest man wrote long time ago to me:
Some people are good, some bad but mankind is like a cancer!
I believed that too, but fortunately, we could be wrong!

If you cross data link this stats [ http://economist.com/fertility14 ] to stats of infant mortality, life expectancy, health care and pension system, you would see there's no more growth in width instead and population growth is slowing down already. We don't see it, cause the rest growth comes from higher life expectancy in green regions.

in green/turquoise regions fertility is under 2.1 children on average => population grows only there, cause people get older. With a differential equation, you would see, that population is shrinking a little bit on medium-term outlook.
Global economic crisis is just one effect of this,
but it will settle again and adjust in a balance.
John Maynard Keynes wrote a long time ago that in developed industrial nations growth would weaken down at some point and system gets in a state of balance after a short recession. He was completely right.
Gross value added and production of goods has been growing since 2000 only slightly more. Only amount of money and debts grew on as usual because people believed in eternal growth. The figures were in front of their nose and their eyes, but the idea of infinite growth was so promising, that they were blind to reality.

You must only compare
  • growth of money supply M1 + M2 + M3
  • growth of debts
    on one side with
  • growth of real GDP and
  • growth of industrial production and services
    on the other side.
Then thou willt see things more clearly!
macro economic indicators of Austria
Growth of future will be energy efficiency and fuel-efficient technologies. Nevertheless, I am happy because after a short hard period of recession, there will be then stability!
Excellent!
A very dry climatic zone (sahara) makes conditions in Africa difficult. But according to lastet economic outlook, there would be economic growth in South Africa, Nigeria, Ghana
Nevertheless my grandma had 4 sisters and 3 brothers, so 5-6 children aren't really so much for africa under that hard climatic conditions. So there was an enormous development in medicine and healthcare during the last century. 

2014-06-08

Pensionssystemproblematik Update

Linke, wie rechte, wie liberale haben ein Problem.
Sie konstruieren sich die persönliche Wahrheit nach ihrer Ideologie ohne dabei im wissenschaftlich aufgeklärten Sinn einen seriösen Diskurs über vorhandene Daten und Fakten zu führen.
Sie wischen vorhanden Daten und Fakten, die nicht in ihr Konzept und ideologisches Weltbild passen einfach zu 90% weg, nur um ihre Ideologie als Primat durchzusetzen.
Linke ignorieren immer die erst durch Umverteilung entstande Ungleichheit und die Problematik der teilweise vollkommen fehlgeleiteten Umverteilung durch den Staat, liberale sind marktgläubig, obwohl die Subprime-Market-Krise, die geplatzte .COM-Blase und sonstige Wirtschaftskrisen und Blasen die Theorie des optimalen freien Markts klar widerlegen. Rechte sehen durch Migration hohe Kosten im Sozialsystem entstehen, obwohl dies auch durch Daten widerlegt ist. (Ich bin kein Fan von vollkommen ungeregelter Migration im Sinne einer Völkerwanderung, aber diese haben wir hier keinesfalls)
Diese Vorgehensweise ist in meinem Weltbild sowohl grausam als auch menschenverachtend.
Stell dir vor Österreich steht vor einer Pensionskatastrophe 
und alle gehen in Frührente.
Quelle: http://statistik.gv.at/web_de/statistiken/arbeitsmarkt/erwerbstaetige/062875.html
Im Alterssegment von 55-64 arbeiteten 2013 454.100 Erwerbstätige,
in der Altersgruppe von 45-54 arbeiteten 2013 1.160.200 Erwerbstätige.
Ohne Reform des Pensionssystem werden bis 2018 zirka 500.000 Beschäftigte in Rente gehen,
bis 2023 werden es zirka 1.000.000 weniger der alten Einzahler ins System sein und ich weiß nicht wie viele nachrücken. Besonders waren die Löhne und SV-Beiträge dieser 1.000.000 alten Einzahler recht hoch, die nachfolgenden jüngeren sind schlechter entlohnt und es sind weniger.
Die Erwerbstätigen in der Altersgruppe 45+ haben vergleichsweise bessere Gehälter im Vergleich zum Rest. Für alle vor dem 01.01.1955 Geborenen in dieser Gruppe gilt weiterhin das alte Recht zum 31.12.2004 vollständig. Aber auch die meisten aus der Altersgruppe 45-54 mit 1.160.200 Erwerbstätigen fallen noch teils unter das frühere Pensionsrecht. In 10 Jahren werden aus diesen beiden Gruppen der Großteil an Frauen und auch viele Männer in Rente gehen, sollte es nicht bald unerwarteter Weise zu einer nachhaltigen Reform kommen.
Die Folge davon ist:
  1. Viele Einzahler mit entsprechend hohem Gehalt und damit auch hohem Sozialversicherungsbeitrag gehen als Einzahler aus dem System heraus und
  2. werden zu Beziehern des Systems mit relativ hohen Pensionsansprüchen.
http://goo.gl/s83KuB
Obwohl im Pensionssystem 4 Mrd. € eingespart werden, steigen die Kosten bis 2018 um 4 Mrd. € im Vergleich zu heute.

Wir sehen die Kosten der Pensionsversicherung betrugen 2013 bereits 37 Mrd. €,
hinzu kamen noch 10 Mrd. € aus dem Budget, etwa 9 Mrd. € für die Beamtenpensionen und 2,2 Mrd. € für die ÖBB-Pensionen.
37 + 10 + 9 + 2,2 = 58,2 Mrd. € Pensionskosten.

Das ist die wirtschaftliche Entwicklung seit 2000:
http://blog.area23.at/2014/04/macroeconomic-indicators-of-austria.html
Nähere Infos unter: http://blog.area23.at/2013/11/alterspyramide-beschaftigung-und.html
und http://blog.area23.at/2014/04/privilegienpensionen-das.html

Achtung bereits 2014 gibt es wesentliche Abweichungen, sowohl von der Anzahl der Pensionen, wie auch von der Höhe im Vergleich zum langfristig berechneten Modell 2060:
http://www.bmask.gv.at/cms/site/attachments/8/6/7/CH2818/CMS1383132160631/langfristmodell_beschluss_incl_tabs.pdf

Ich bin zum Glück nicht der einzige, dem diese gravierende Problematik bewusst ist:
Martin Gundinger schrieb hier ebenfalls sehr ausführlich über die Pensionsproblematik.
Auch der Agenda Austria ist die Problematik des Pensionssystem vollkommen bekannt.

Ursprünglich wies Hannes Androsch seit 1977 bereits im Jahr 1977 darauf hin:
Mich beschäftigt das schon 40 Jahre ungefähr – genau sind es jetzt 36 Jahre. Sie finden das in den Unterlagen. In einem Vortrag im Herbst 1977 „Entscheidung für morgen“ habe ich dieses Thema, das sich aus der demografischen Entwicklung, aus der Verlängerung der Lebenserwartung bei gleichzeitig immer früherem Pensionsantritt und immer größerer Anzahl von Frühpensionisten ergibt, angeschnitten. Ich habe dann im Jahr 1980 – also ungefähr ein Jahr vor meinem Ausscheiden aus der Regierung – einen Disput mit dem Sozialminister gehabt und diesbezüglich den Kanzler bemüht. Dieser Briefwechsel, der Ihnen in Kopie auch zur Verfügung steht, hat damit geendet, dass der Kanzler gesagt hat: Wenn es einen Streit zwischen dem Sozialminister und dem Finanzminister gibt, bin ich immer auf der Seite des Sozialministers. So.
http://a.referata.com/wiki/Pension

IV-Präsident Kapsch: Wesentlich tiefgreifendere Reformschritte erforderlich – Pensionsharmonisierung konsequent umsetzen – Strukturreformen im gesetzlichen Pensionssystem angehen

„Eine realistische Begrenzung von Sonderpensionen ist dringend notwendig, um endlich mehr Fairness gegenüber den ASVG-Pensionisten zu erlangen“, so der Präsident der Industriellenvereinigung (IV),Mag. Georg Kapsch, heute, Montag. „Dass es bei den Körperschaften öffentlichen Rechts bzw. im öffentlichen Bereich, wo Steuermittel eingesetzt werden, künftig immer noch möglich sein soll, 13.590 Euro monatlich an Sonderpensionen zusätzlich zu einer Pension aus der gesetzlichen Sozialversicherung zu beziehen, ist gegenüber dem Steuerzahler nicht zu rechtfertigen. Eine Luxuspension von 13.590 Euro monatlich ist mehr als das vierfache der ASVG-Höchstpension von derzeit 3.136 Euro. Die vielzitierte Gerechtigkeit sieht anders aus“, so Kapsch. Daher fordere die Industrie wesentlich tiefgreifendere Eingriffe bei den Luxuspensionen wie auch die Einbeziehung von Rechtsträgern auf Landesebene mit Sonderpension, die bei dem aktuellen Entwurf nicht unmittelbar erfasst würden, betonte Kapsch.

„Allerdings gilt es auch im Pensionssystem insgesamt die Pensionsharmonisierung auf Bundes- und Länderebene konsequent und möglichst rasch voranzutreiben“, forderte Kapsch. Ziel müsse ein auf der Bundesregelung, dem Allgemeinen Pensionsgesetz, basierendes, einheitliches Pensionsrecht sein. „Gleichzeitig gilt es, weitere strukturelle Reformschritte im Pensionssystem zu setzen. Notwendig ist insbesondere die Implementierung eines Nachhaltigkeitsmechanismus im Pensionssystem, der die steigende Lebenserwartung automatisch berücksichtigt, und die raschere Angleichung des gesetzlichen Frauenpensionsalters an jenes der Männer, denn nur so kann es zu einer echten Generationengerechtigkeit kommen“, betonte der IV-Präsident.

ASFINAG Emissionen

Am 9.5.2014 schrieb ich im Aktien-Forum folgenden Kommentar als Antwort auf die 40 Mrd. € Vorbelastung des Budgets durch die ÖBB:
>40 Mrd. €? Wann und wie kommt das wieder rein?
>Return of investment?

Hier im Vergleich dazu die Asfinag:
http://www.tt.com/wirtschaft/unternehmen/8312008-91/asfinag-bilanz-100-millionen-euro-f%C 3%BCr-das-budget.csp
Schulden: 11,520 Mrd. Euro
Mauterlöse / Jahr: 1,688 Mrd. Euro +4% zum Vorjahr
Von 2014 bis 2019 sind Investitionen von 6,5 Mrd. Euro geplant.
Also auf den ersten Blick sehen die Emissionen der ASFINAG recht in Ordnung aus.
https://docs.google.com/spreadsheets/d/1E2Xoi1m5sBubcX4_zJqvhPWo5QIxck-BPBxGulPTXX0/edit?usp=sharing
Und das sind sie auch: Gesamthaftung der Republik für die ASFINAG macht 12 Mrd. € aus. Die noch laufenden Emissionen machten über die gesamte Laufzeit 13 Mrd. € aus, aber davon ist schon einiges getilgt. Die 11,5 Mrd. € Schulden oben dürften in etwa stimmen, obwohl ich meine, dass die ASFINAG real sogar etwas weniger Schulden haben müsste, sofern sie sonst nirgendwo verschuldet ist!
Quelle: FMA

2014-06-01

Kein Grund zu Sorge, es ist alles fein

PISA: Jeder vierte Schüler kann nicht sinnerfassend lesen

07.12.2010 | 11:32 |   (DiePresse.com)
15 Prozent der 15/16-Jährigen sind in allen drei Bereichen Risikoschüler. Migranten schneiden erneut deutlich schlechter ab. Um die Chancengleichheit ist es in Österreich nicht gut bestellt.

Arbeitslosigkeit steigt um über zehn Prozent

Die Arbeitslosigkeit in Österreich ist im April in allen Bundesländern weiter gestiegen. Insgesamt 390.289 Personen waren Ende April entweder arbeitslos oder in Schulungen, das waren um 37.169 bzw. um 10,5 Prozent mehr als im Vorjahr.

Österreich: Rekord-Schulden wegen Bankenrettung für Hypo Alpe Adria

Österreich verabschiedet sich wegen der Rettung der Skandal-Bank Hypo Alpe Adria von den Maastricht-Kriterien: In den kommenden Jahren wird der Schuldenstand explodieren. 

14.05.2014, 21:41  von Andre Exner

Frühpensionen lassen die erste Säule bröckeln

Studie. Österreichs Pensionssystem ist in Sachen Nachhaltigkeit im internationalen Vergleich bloß im Mittelfeld und rutscht ab - die Folge der vielen Frühpensionierungen.


7 Gründe, warum Österreich nicht reformierbar ist

Die erstarrte Republik: Der Ruf nach Reformen ist zu einem vertrauten Echo in der politischen Debatte geworden. Die Hürden für Veränderungen scheinen aber unüberwindbar zu sein. Von Klaus Höfler.