Wikipedia:Reference desk/Computing

This is an old revision of this page, as edited by Konveyor Belt (talk | contribs) at 00:44, 19 July 2015 (Respectsale malware). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


Latest comment: 9 years ago by Konveyor Belt in topic Respectsale malware
Welcome to the computing section
of the Wikipedia reference desk.
Select a section:
Want a faster answer?

Main page: Help searching Wikipedia

   

How can I get my question answered?

  • Select the section of the desk that best fits the general topic of your question (see the navigation column to the right).
  • Post your question to only one section, providing a short header that gives the topic of your question.
  • Type '~~~~' (that is, four tilde characters) at the end – this signs and dates your contribution so we know who wrote what and when.
  • Don't post personal contact information – it will be removed. Any answers will be provided here.
  • Please be as specific as possible, and include all relevant context – the usefulness of answers may depend on the context.
  • Note:
    • We don't answer (and may remove) questions that require medical diagnosis or legal advice.
    • We don't answer requests for opinions, predictions or debate.
    • We don't do your homework for you, though we'll help you past the stuck point.
    • We don't conduct original research or provide a free source of ideas, but we'll help you find information you need.



How do I answer a question?

Main page: Wikipedia:Reference desk/Guidelines

  • The best answers address the question directly, and back up facts with wikilinks and links to sources. Do not edit others' comments and do not give any medical or legal advice.
See also:


July 13

Will Windows 10 automatically update drivers?

Will Windows 10 automatically update drivers? I keep getting offers from WinZip for some software that updates drivers on Windows 7 and 8. Will that still be useful after Windows 10 is installed? Bubba73 You talkin' to me? 02:28, 13 July 2015 (UTC)Reply

For many years now Microsoft has been working with hardware manufacturers to make drivers available automatically through Windows Update. Some manufacturers make use of that facility; others offer their driver updates (and sometimes their own automatic updater tools) via their own websites. Many do both. In Windows 10 Microsoft will certainly continue working with hardware manufacturers to try and increase the number of automatic driver updates available. I wouldn't expect any dramatic increase in the number of drivers available from Windows Update when Windows 10 is released; rather, if Microsoft has their way, a gradual increase over time.
Third-party software that offers to update your drivers is almost certainly ad-supported or similar. It might even be thoroughly malicious. I would avoid it. —Noiratsi (talk) 07:28, 13 July 2015 (UTC)Reply
An update: I have done some research into WinZip's "Driver Updater" software, which is presumably what you're referring to. It sounds like they offer a free version which (this may be an exaggeration) tells you all your drivers are out of date and asks you to buy the paid version in order to update them. One user (a blog post from June 2014) reports that WinZip's utility told him all his drivers were out of date but several other utilities found no problems at all. I'm sure you can do more research of your own if you want to know more. —Noiratsi (talk) 07:47, 13 July 2015 (UTC)Reply
That is the one I'm talking about. I tried the free version and it listed several drivers that it said were out of date, but you had to get the paid version to actually update them. I didn't do it, and it sounds like it would not be worth it. Thanks. Bubba73 You talkin' to me? 16:05, 13 July 2015 (UTC)Reply

Is my Realtek NIC fried?

I'm worried and anxious about the internal NIC on my ASUS motherboard being potentially damaged recently. It all happened when, for some reason, my wireless extender box gave up on me not too long ago. At first I thought it was just the router itself, but I connected the DSL modem to my rig and while it initially worked and was able to acquire a DNS address, unplugging the cable and reconnecting it again resulted in this on the terminal upon keying in the ipconfig /all and nslookup commands:

Address: fec0:0:0:ffff::1

I was thus unable to browse the web from that point on; releasing and renewing the lease does the trick, and changes the address back to 192.168.1.1, and I am able to get back online by forcing a different DNS server as well. It just irks and worries me that reproducing the problem doesn't yield the same issue with another PC i.e. plug it in on the ethernet jack, wait for a few minutes, unplug it and then replug it again. I tried reinstalling the driver to no avail, and went so far as to downloading and running SystemRescueCD to check if it's just Windows being bonkers, but the symptoms seem to persist regardless. I am running out of options right now, and I'm not that arsed to tell my folks about having the board RMA'd either. Blake Gripling (talk) 11:21, 13 July 2015 (UTC)Reply

Maybe the RTL WLAN or used Transceivers with it did not earn my full trust on reliability, but this may not be caused by Realtek. Until the device is soldered into a retail product, there are several steps neccessary to make the whole product work. With the RTL ethernet chips, I do not know any single failure of hardware. The only things happened, longer time ago, software certificates was stolen from Realtek to sign malware with it and recent drivers or branded driver software labeled to other manufacturers names using realtek devices in their hardware have had some problems. I guess You have a problem with network configuration, beginning from damaged or cheap cables, sometimes failed connection due special lenght in combination with the used pulse transformers in the ethernet devices which make You solve the problem by using another network cable, followd by malware, bad driver versions, man in the middle attacks, cracked and pwnd router. As You described to work with other DNS server configuration to solve such problems, note somebody might route all Your internet traffic to and over another place! I suggest You to net drivers for the NIC from http://www.realtek.com.tw/ only. If this does not solve the problem, backup all your data, reinstall Your computer in an unaffected internet connection with all devices free of malware, immediately install operatingsystems security updates and antivirus software, get a the recent firmware update for Your router, flash it and reconfigute it. Note there are vulnerabilities like the USB stack used in the routers kernel. Your Devices in the LAN gets the DNS resolved by the router. If somebody changes the DNS server settings in the router, all Your devices in the LAN are affected by that change, retrieving these pages stored in the DNS server the router is set to with not change on Your computer at this time. But when downloading, it comes from the page the DNS server resolves to. --Hans Haase (有问题吗) 21:24, 13 July 2015 (UTC)Reply
I'm slightly confused what the problem is. Are you saying that the adapter stops receiving an IPv4 address after a while and only has an IPv6 address or what? Nil Einne (talk) 16:06, 15 July 2015 (UTC)Reply

Microsoft’s Metro

What really is Metro? Is it a programming language? Or a markup language? Where can I learn it? --Biolongvistul (talk) 15:41, 13 July 2015 (UTC)Reply

It is a design language. That is similar to a markup language, but unlike a markup language, it is aimed at designers, not display engines. 199.15.144.250 (talk) 15:47, 13 July 2015 (UTC)Reply
I think it might be very confusing to suggest that a design language is like a markup language. A markup language is a system for annotating text. It has a formal syntax. It tells the computer how to interpret documents or data. A design language, on the other hand, is not a 'language' in the same sense at all. It might be better described by its alternative name "design vocabulary". It's just a set of visual ideas that a designer may make use of. —Noiratsi (talk) 16:43, 13 July 2015 (UTC)Reply

July 14

Do unread Facebook messages expire?

(Transferred from W:RDM due to recommendation) Despite having had a Facebook page for years, I have never once checked my messages. I didn't know I had them. So recently, when I found out, I wanted to read some old things just to see who and why people were writing someone who never went on Facebook. Well, I got one message from 2013 to load, but nothing older than that.

These messages are mostly from 2011, with a few from 2012. Are they not loading because of how long they've sat unread? --Ye Olde Luke (talk) 01:40, 14 July 2015 (UTC)Reply

If they meant for them to expire, they would presumably have removed the link to them, too. I suspect that the server they were on was retired, or something like that, so that they have become inaccessible. StuRat (talk) 04:54, 14 July 2015 (UTC)Reply
Are you by any chance guessing there, StuRat? --Viennese Waltz 08:33, 14 July 2015 (UTC)Reply
You can read a bit about how FB Messenger works on the developer's blog. For efficiency reasons, the servers are structured so that the most recent messages are stored in a queue on a fast-access server (Facebook uses a variant of what's called the publish–subscribe pattern to send its messages, and Facebook has no way of knowing whether a user will read the next message on a phone or a computer, so they need to be ready for either contingency), while older messages are kept on traditional servers. I had a quick check, and although messages for 2010 and earlier take a few seconds to load, they do appear. Are you sure you have messages from that era? (Also, it's worth checking your "Other" inbox, which is where messages from groups and strangers are filed - I have some from before 2012 although when I try to load these I get errors, probably because of the way Groups, Pages and Messages work on Facebook have all changed over the last 4 years). Smurrayinchester 09:08, 14 July 2015 (UTC)Reply

Sorting in Excel

As it will be quite hard to explain, what I want to do, I will show it with an example. So I have such table in Excel (this is just a small part of it)

1 foo 1 something
2 bar 3 completely
3 lorem 4 random
4 ipsum 5 text

And I want to get such result

1 foo 1 something
2 bar
3 lorem 3 completely
4 ipsum 4 random
5 text

As you can see, I want to get the same values in several columns for each row. In this case, the main column, by which I want to sort the data, is the first one and I want, that 3rd column sorts by the same values. --Edgars2007 (talk/contribs) 09:10, 14 July 2015 (UTC)Reply

VLOOKUP is your friend here. First, create a column containing all the possible index numbers, like this (I'm going to mark Excel cell references, to make this a bit clearer) So, here's your table. If the data isn't sorted, sort each pair of columns by the index (don't use the "Expand selection" operation when doing this sort) to close up empty rows and ensure everything is ordered:
There's a lot of tables here, so I'm hiding this, but hopefully the answer is in here
A B C D
1 1 foo 1 something
2 2 bar 3 completely
3 3 lorem 4 random
4 4 ipsum 5 text
5

Add a column ("E") containing a list of all possible index numbers

A B C D E
1 1 foo 1 something 1
2 2 bar 3 completely 2
3 3 lorem 4 random 3
4 4 ipsum 5 text 4
5 5

Now do VLOOKUP magic. VLOOKUP takes a number (or other string), finds that in the left-most column of an array you specify, and gives you the matching entry from that row of that array (to find entries, it needs the lookup values to be sorted). For this simple example, the VLOOKUP you want is:

A B C D E F G
1 1 foo 1 something 1 =VLOOKUP(E1;$A$1:$B$5;2;FALSE) =VLOOKUP(E1;$C$1:$D$5;2;FALSE)
2 2 bar 3 completely 2 =VLOOKUP(E2;$A$1:$B$5;2;FALSE) =VLOOKUP(E2;$C$1:$D$5;2;FALSE)
3 3 lorem 4 random 3 =VLOOKUP(E3;$A$1:$B$5;2;FALSE) =VLOOKUP(E3;$C$1:$D$5;2;FALSE)
4 4 ipsum 5 text 4 =VLOOKUP(E4;$A$1:$B$5;2;FALSE) =VLOOKUP(E4;$C$1:$D$5;2;FALSE)
5 5 =VLOOKUP(E5;$A$1:$B$5;2;FALSE) =VLOOKUP(E5;$C$1:$D$5;2;FALSE)

The first variable ("E1" to "E5") is the cell whose value Excel will search for, the second ("$A$1:$B$5" or "$C$1:$D$5") is the array that Excel will search in (I've added the dollar signs to allow the formula to be auto-filled easily - if you've not come across this before, the Excel blog explains), the third variable ("2") is which column of the table contains the answer, and the fourth ("FALSE") tells Excel you want an exact match, not just a near-hit. This should resolve as:

A B C D E F G
1 1 foo 1 something 1 foo something
2 2 bar 3 completely 2 bar completely
3 3 lorem 4 random 3 lorem #N/A
4 4 ipsum 5 text 4 ipsum random
5 5 #N/A text

If the #N/As are a problem, you can use an IFERROR function to hide them, like so:

A B C D E F G
1 1 foo 1 something 1 =IFERROR(VLOOKUP(E1;$A$1:$B$5;2;FALSE);"") =IFERROR(VLOOKUP(E1;$C$1:$D$5;2;FALSE);"")
2 2 bar 3 completely 2 =IFERROR(VLOOKUP(E2;$A$1:$B$5;2;FALSE);"") =IFERROR(VLOOKUP(E2;$C$1:$D$5;2;FALSE);"")
3 3 lorem 4 random 3 =IFERROR(VLOOKUP(E3;$A$1:$B$5;2;FALSE);"") =IFERROR(VLOOKUP(E3;$C$1:$D$5;2;FALSE);"")
4 4 ipsum 5 text 4 =IFERROR(VLOOKUP(E4;$A$1:$B$5;2;FALSE);"") =IFERROR(VLOOKUP(E4;$C$1:$D$5;2;FALSE);"")
5 5 =IFERROR(VLOOKUP(E5;$A$1:$B$5;2;FALSE);"") =IFERROR(VLOOKUP(E5;$C$1:$D$5;2;FALSE);"")

This gives:

A B C D E F G
1 1 foo 1 something 1 foo something
2 2 bar 3 completely 2 bar completely
3 3 lorem 4 random 3 lorem
4 4 ipsum 5 text 4 ipsum random
5 5 text
Hope this helps. Smurrayinchester 09:39, 14 July 2015 (UTC)Reply
This looks very good. Thank you :) This will really save a lot of time. --Edgars2007 (talk/contribs) 09:56, 14 July 2015 (UTC)Reply

Ruler Add-on

Is there any add-on for Mozilla Firefox that I can use as a ruler, measuring distances on the screen in pixels, like you use the ‘Eyedropper’ to get the colour of a pixel? — Preceding unsigned comment added by Biolongvistul (talkcontribs) 13:10, 14 July 2015 (UTC)Reply

Both "screen ruler" and "kruler" allow you to measure distance on the screen in pixels, but they are not Firefox add-ons. They are independent programs. 209.149.113.136 (talk) 13:54, 14 July 2015 (UTC)Reply

July 15

Netbook replacement

While I was napping, the netbook disappeared from the market. I'm looking to replace a Toshiba NB505 with something similar--small, light, (almost) full keyboard, not hot on the family jewels. Anyone have any suggestions? Thanks! Drmies (talk) 15:28, 15 July 2015 (UTC)Reply

I bought something like this from Tesco last year and am quite happy with it. There are other similar machines on that page that you could compare it with.--Phil Holmes (talk) 16:14, 15 July 2015 (UTC)Reply
Thanks Phil Holmes. So, about terminology, I'm looking for a small laptop, I suppose? Or is "notebook" a valid technical search term? Hard to see the forest for the trees. Drmies (talk) 17:46, 15 July 2015 (UTC)Reply
As far as I know "notebook" and "laptop" are pretty synonymous. So yes, just a small one of those. As far as the fate of the netbook goes, things that have usurped its its place in the market include the ultrabook (like a netbook but more expensive), the Chromebook (a netbook that only runs web apps) and the convertible tablet. —Noiratsi (talk) 06:49, 16 July 2015 (UTC)Reply

Blockchain technology to authenticate documents

Some companies offer "proof of existence" services, and claim that they use blockchain authentication to timestamp documents. As I understand, this is the same technology used to bitcoin. From a technical perspective, is this a 100% sure-fire way of authenticating documents? And, from a legal perspective, do courts recognize this 100% sure-fire (if at all) way of authenticating documents?--Yppieyei (talk) 15:46, 15 July 2015 (UTC)Reply

They don't just use blockchain technology, they literally store a hash in Bitcoin's blockchain. Bitcoin allows arbitrary data to be added to the blockchain (which has to be stored by every full node in the Bitcoin network forever, which seems wasteful, but oh well).
There's no such thing as a mathematically airtight proof of this sort of thing. It comes down to whether the person you're trying to convince buys your argument. I would personally have complete confidence in the integrity of anything stored in the blockchain that's more than, say, 1 week old, but you might have trouble explaining to a less technically-minded person that they should trust it. You might be better off, say, buying ad space in a widely-read newspaper and putting the hash in that, though you still have to convince them that the hashing algorithm you used is unforgeable.
I don't know whether these sorts of proofs have been tested in court. -- BenRG (talk) 21:03, 15 July 2015 (UTC)\Reply
OK, I thought they were creating an independent blockchain just for storing the signatures of their digital content. I also had the impression so far that everything older than 1 h could be trusted, but you talk about 1 w.
So, but if stored information starts to grow and grow by bitcoin transactions or "timestampers" performing phony bitcoin transactions, or 2.5 megabyte Wikileak files, wouldn't that be not only wasteful, but reach an amount of information too big to be manageable?
At least, for those of us that are not Google. Isn't bitcoin too easy to disrupt? Would start sending junk into it and see how nodes have to stop working? (starting by the smallish, and then the going up).--Yppieyei (talk) 23:00, 15 July 2015 (UTC)Reply
I said one week just because it's long enough that no one could argue that I should have picked a longer time, but also short enough that no one would be likely to need to prove that they had a document less than that time ago. I'd probably trust day-old transactions too, but I don't think I'd need to for this application.
The growth of the blockchain is currently limited to 1 megabyte per 10 minutes. If your junk plus legitimate transactions exceeds that rate, the miners choose what to include, and they'd probably choose whatever has the highest transaction fee per byte. Transactions fees currently seem to total around 15 BTC/day (≈ 4000 USD/day), so I suppose you could significantly disrupt the system if you were willing to pay more than that. -- BenRG (talk) 02:30, 16 July 2015 (UTC)Reply
And besides this limitation of growth speed (of 1MB/h), is there other limitations in size? Maybe a total limitation of gigas? Because if there is, and they are including just the sha256 (64 bytes) or the md5 (8 bytes), then, the whole time-stamping might be useless. Or a total limitation of participants? --Yppieyei (talk) 08:41, 16 July 2015 (UTC)Reply

Encrypt text that can be decrypted using a key in C#?

Hello everyone. I am trying to encrypt a string of text. I have been successful at encrypting text, but I can't seem to decrypt it. So I did a little research and found that I need to use a Public key encryption algorithm. Therefore, I came to the RSA algorithm. the .NET Framework has a class for implementing RSA. What I want to know is, who do I use the System.Security.Cryptography.RSA class? I know how to convert text into an array of bytes but I don't know how to use the RSA class. If there are any simpler methods to do what I want to do then please let me know. Thanks for your help in advance. —SGA314 I am not available on weekends (talk) 15:59, 15 July 2015 (UTC)Reply

It's not really clear what you want. What is your goal or use case? First, public key methods are really good for some purposes, but you don't really need that if you don't need to have people be able to send you encrypted files. The whole point of public key methods was to solve the key distribution problem, but that mostly goes away if you only want to encrypt/decrypt strings for your own local use, or if you have some other secure method of getting keys to people. Also, it seems like you're taking a DIY approach - is there a reason for that? Otherwise you can just use one of the tools like Veracrypt. SemanticMantis (talk) 16:27, 15 July 2015 (UTC)Reply
A. I like DIY. For me, doing stuff like this is fun. That's why I am taking a DIY approach.
B. My purpose is to use an algorithm to encrypt a string of plaintext. Then use a special key that was used to encrypt the text, to decrypt it. This would allow me to encrypt files and such. —SGA314 I am not available on weekends (talk) 17:01, 15 July 2015 (UTC)Reply
Why not XOR the string with digits of pi? Your key is which digit of pi to start at as an offset. This constitutes a symmetric key algorithm and it is surprisingly secure against a wide variety of attacks. It's sort of a one-time pad, except that the pad is well-known.
The exercise for you would be to figure out how to represent the n-th digit of pi; and how to ensure that your representation will accurately obfuscate your plaintext. (Hint: if you use ASCII to represent decimal digits of pi, that will leave a lot of bits un-touched - so you'll want to use a different representation)! (Hint #2: if you use a small offset as your key, the digits of pi are very well-known, so that leaves you vulnerable to a category of brute-force attacks).
Nimur (talk) 19:53, 15 July 2015 (UTC)Reply
That's not a one-time pad; it's a very, very, very slow stream cipher. It also lacks integrity protection, and it's not secure against key reuse—every message encrypted under a particular key will use the same digits of pi. Please don't try to fix those problems; instead, use code written by professional cryptographers. -- BenRG (talk) 20:08, 15 July 2015 (UTC)Reply
BenRG's main criticism is correct; you should use standard techniques, instead of trying to "work around" all the problems that arise when you use simplistic methods. However, calculating the n-th digit of pi need not be very slow: many algorithms can compute the n'th digit: the most famous of these is the BBP formula and it can run in constant time. This being the case, you can use the digits as a stream cipher with arbitrary (and very large) offset, which is a darned good approximation of a one-time pad. As an exercise in fun mathematics, this is worth consideration. As an effective and cryptologically-sound cypher, ... it leaves a few things to be desired. Nimur (talk) 21:05, 15 July 2015 (UTC)Reply
According to the paper, the complexity of computing the nth digit of pi with BBP is O(n log(n) M(log(n))) where M(j) is the complexity of multiplying j-bit integers. This is slower than O(n), so encrypting or decrypting using this algorithm is slower than brute-forcing AES. I think it's also almost as slow as brute-forcing the pi-based encryption by generating pi from the beginning. -- BenRG (talk) 01:01, 16 July 2015 (UTC)Reply
You are correct, thank you for fact-checking my statement. I was in error; BBP to determine the n-th digit of pi is not a constant-time calculation. Nimur (talk) 01:27, 16 July 2015 (UTC)Reply
Public-key cryptography, aka asymmetric cryptography, uses different keys for encryption and decryption. If you want to decrypt the text with the same key you used to encrypt it, that's symmetric cryptography.
Cryptography is not a good thing to do yourself, because it's very easy to get something wrong, and there's no way to tell when you've done it wrong, because you don't get an error message, just an "encrypted" document that isn't actually secure.
If you want to write your own encryption software, I strongly recommend you use NaCl's crypto_secretbox instead of .NET's built-in libraries. It's much easier to use and much harder to screw something up. There's a .NET version of NaCl here (I haven't used it but it looks decent).
If you want to screw around with low-level stuff like RSA, the best way might be to implement someone else's encrypted format, such as a subset of PGP, and then check your implementation against an official one. If they can decrypt each other's encrypted files, you've mostly gotten the encryption right. Even then you can screw it up, though, by using low-quality randomness when encrypting or by failing to check the integrity when decrypting. -- BenRG (talk) 20:08, 15 July 2015 (UTC)Reply
Then I guess I need to use an symmetric cryptography. —SGA314 I am not available on weekends (talk) 15:38, 16 July 2015 (UTC)Reply
My purpose in this is to encrypt messages that I will send to another computer on the net or the local network. That way a hacker can't intercept these messages(they will contain code that will manipulate the pc on the other side) and modify their contents and/or send them back to me. I was planning on having pc A send a message that contains a password that is the hash product of the message contents. Or worse, send malicious code to me! To illustrate my theoretical encryption scheme, lets say that I have a message saying, "Hello." The key would be produced by encrypting the "Hello"(this message will be encrypted using another hard-coded key) message using a hard-coded key. Then when pc B receives the message, it will try and recreate the password using the decoded message. If the recreated password matches the password that was received, then it will run the code(the contents of the message). If anyone has a better idea please let me know. —SGA314 I am not available on weekends (talk) 17:00, 16 July 2015 (UTC)Reply
Ok so I have come up with an implementation of the Aes algorithm. but when I type in more than the block size can handle(16) then the program errors out saying that it received an incomplete block. To get around this, I have to pad the input bytes with zero bytes. Using this method, when ever i try to decrypt a message, anything past the 16th byte is just garbled nonsense. This is because the program is encrypting the zero bytes(the padding) how do I fix this? Code is below.
Long code
		//this.EncryptedText = a byte array that contains the encrypted text in bytes.
		//OutputBox = a Mutli-line textbox that displays the encrypted text.
                using System.Security.Cryptography;

                public Aes cry = System.Security.Cryptography.AesManaged.Create();
		private void Decrypt()
		{

			ICryptoTransform DeCrypt = cry.CreateDecryptor(this.Key, this.IV);

			byte Bit = byte.Parse("0");

			#region Pad Data To A 16-bit Block
			int Length = this.EncryptedText.Length;
			if (Mod(this.EncryptedText.Length, 16) != 0)
			{
				while (Mod(Length, 16) != 0)
				{
					Length += 1;
				}
			}
			byte[] Input = (byte[])Array.CreateInstance(Bit.GetType(), Length);

			for (int i = 0; i < this.EncryptedText.Length; i++)
			{
				Input[i] = this.EncryptedText[i];
			}
			#endregion
			byte[] Output2 = DeCrypt.TransformFinalBlock(Input, 0, Input.Length);

			DataBox.Text = ConvertBytesToString(Output2);
		}

		private int Mod(int x, int y)
		{
			return x - (x / y) * y;
		}

		private byte[] getChars()
		{
			ICryptoTransform Crypt = cry.CreateEncryptor(cry.Key, cry.IV);
			byte Bit = byte.Parse("0");

			char[] Chars = InputBox.Text.ToCharArray();
			int Length = 0;
			if (Mod(Chars.Count(), Crypt.OutputBlockSize) == 0)
			{
				Length = Chars.Count();
			}
			else
			{
				int a = Mod(16, 16);
				int L = Chars.Count();
				while (Mod(L, Crypt.OutputBlockSize) != 0)
				{
					L += 1;
				}
				Length = L;
			}

			byte[] Input = (byte[])Array.CreateInstance(Bit.GetType(), Length);

			for (int i = 0; i < Chars.Count(); i++)
			{
				Input[i] = (byte)Chars[i];
			}
			return Input;
		}
		private void Encrypt()
		{
			//Generate a Random Key.
			cry.GenerateKey();
			cry.GenerateIV();


			this.Key = cry.Key;
			this.IV = cry.IV;

			ICryptoTransform Crypt = cry.CreateEncryptor(cry.Key, cry.IV);

			byte Bit = byte.Parse("0");

			char[] Chars = InputBox.Text.ToCharArray();
			int Length = 0;
			if (Mod(Chars.Count(), Crypt.OutputBlockSize) == 0)
			{
				Length = Chars.Count();
			}
			else
			{
				int a = Mod(16, 16);
				int L = Chars.Count();
				while (Mod(L, Crypt.OutputBlockSize) != 0)
				{
					L += 1;
				}
				Length = L;
			}

			byte[] Input = getChars();

			byte[] Output = (byte[])Array.CreateInstance(Bit.GetType(), Length);


			Crypt.TransformBlock(Input, 0, Crypt.InputBlockSize, Output, 0);

			this.EncryptedText = Output;

			OutputBox.Text = ConvertBytesToString(Output);

			KeyBox.Text = ConvertBytesToString(cry.Key);
		}
		private string ConvertBytesToString(byte[] Bytes)
		{
			char[] Chars = UnicodeEncoding.UTF7.GetChars(Bytes);
			string Output = String.Empty;
			for (int i = 0; i < Chars.Count(); i++)
			{
				Output += Chars[i];
			}
			return Output;
		}
How would I fix this? —SGA314 I am not available on weekends (talk) 19:13, 16 July 2015 (UTC)Reply
For all that work, which is prone to error, it makes me wonder why you don't just use Java's native secure socket connection. Then, you don't have to encrypt/decrypt anything. 209.149.113.45 (talk) 19:13, 16 July 2015 (UTC)Reply
The problem with that is I am not using java. I am using C# and python 3.4.3. I am having to use python because it can run new code at run-time via the exec function. I don't think C# can do that. —SGA314 I am not available on weekends (talk) 19:15, 16 July 2015 (UTC)Reply
Both Python and C# have SSL libraries.
It doesn't sound like you really care about confidentiality here. You care about integrity (only commands sent by someone who knows the secret should be run). If confidentiality doesn't matter then you don't need to encrypt the message in the first place. You just need to append a message authentication code.
I've never used .NET's crypto libraries, but it appears that you're only calling TransformBlock once, and therefore only encrypting/decrypting one block, regardless of the message size. That might explain the garbled output.
Padding the message with zeroes to a multiple of the block size is not going to work because it's not reversible (the message might end with a zero). You should use a standard padding scheme (PKCS#7 padding is probably the most common), or use a block cipher mode that doesn't require padding, such as CTR. Currently you're using CBC, the default, because you didn't set another one.
Fundamentally, though, if this is a system that actually matters to you, and not just a toy, stop trying to invent your own encryption. Use crypto_secretbox. You still need to ensure the sender never reuses a nonce, and the receiver rejects messages with a reused nonce (to prevent replay attacks), and you need to keep the shared secret secret. But NaCl will handle everything else for you. It's also much faster (per byte) than authenticated AES-CBC, if that matters to you.
If you use SSL instead, to get integrity you need to generate a certificate for the sender and ensure that the receiver validates it before accepting the data. You don't have to use a standard certificate authority; you could create your own certificate authority and add it to the receiver's trusted list. But I think this would be far more difficult than using NaCl, and easier to screw up leaving you with no real security. -- BenRG (talk) 22:33, 16 July 2015 (UTC)Reply
Ok so what your saying is that it would be simpler and more secure to use SSL than to encrypt the data. If so, then how would I implement an SSL connection between 2 python or C# programs? As for using crypto_secretbox, I try to stay away from using external libraries because I don't have access to the source. Also, if I want ever want to sell or redistribute a program that I make that uses an external library, then I might run into licensing issues. Thus my reason for not using external libraries. Although I will use an external library is I absolutely need to. —SGA314 I am not available on weekends (talk) 17:09, 17 July 2015 (UTC)Reply

July 16

Run VST Effects on Raspberry Pi 2?

Hello everyone. I just got my self a Raspberry Pi 2 and I would like to know how to run VST 2(the .DLL VST files) effects on the Pi. I am running Raspbian. Would anyone know how to do this? I plan on integrating the Pi into my electric guitar to do advanced DSP via VST effects straight in my guitar. Yes I know that I will have to use an Analog to digital converter to convert the analog signal to digital PCM data. Thanks for your help in advance. —SGA314 I am not available on weekends (talk) 15:35, 16 July 2015 (UTC)Reply

If anyone has done this with the first gen pi, please do explain how you did it. I would think it would work for the second gen pi as well. —SGA314 I am not available on weekends (talk) 19:30, 16 July 2015 (UTC)Reply

In search of software for reading letter by letter

Is there a software that can read letter by letter of a word/pdf document rather than simply reading whole words? Mak2202 (talk) 17:26, 16 July 2015 (UTC)Reply

JAWS allows you to read letter by letter. It automatically goes into letter-by-letter mode when it hits a word that it doesn't know (usually an acronym), but you can force it. Mine is configured so 5 on the number pad goes into letter-by-letter mode and then pressing insert-5 goes back to word mode. Pressing insert-5-5 makes it spell one word, but then keep reading words after that. 209.149.113.45 (talk) 18:02, 16 July 2015 (UTC)Reply
Instead of searching for software that reads letter by letter, you should consider adapting the text to trigger the letter by letter mode. If you process the text you want to be read from, for example, "Encyclopedic content must be ..." to "e.n.c.y.c.l. ..." and feed it into any software, it will be read letter by letter.--YX-1000A (talk) 15:06, 17 July 2015 (UTC)Reply

Calculating the Time Complexity of Quantum Gates

How do we calculate the complexity of a step in a quantum algorithm that apply unitary operator on the qubits? For instance, we say that Grover's algorithm runs is sqrt(N) time, but it only applies one unitary operator, since all the loop is only a composition of unitary matrices, and thus - could be replaced with one unitary operator. So, why don't we consider Grover's algorithm to run in constant time, as for an algorithm that doesn't use a loop? In the general case, how do we measure the time takes to algorithm to apply unitary operator on its qubits? 80.246.136.199 (talk) 19:15, 16 July 2015 (UTC)Reply

Gates can be treated as taking constant time because their behavior doesn't scale with the problem size. It's fine to include a constant-time Grover-solving gate with k inputs in your gate set, but it will only work for input sizes up to k. After that you'll need more of them, or more other gates, and in the N→∞ limit you'll need O(√N) of them. -- BenRG (talk) 21:39, 16 July 2015 (UTC)Reply
(It may be worth adding that people are not always good at following this rule. For example in classical complexity analyses it's common to treat integer addition as a constant-time operation even when the integers being added grow indefinitely with the problem size. Really they should build a circuit out of fixed-size adders, which might add a factor of log N to the total time if the additions are a bottleneck.) -- BenRG (talk) 21:45, 16 July 2015 (UTC)Reply
First, just to make sure I understood you correctly: any gate on constant number of qubits takes constant time, and every gate on arbitrary N qubits takes like the number of gates on constant number of qubits that their composition is this gate.
If I understood correctly, I have two more questions:
  1. First, composing operator on constant number of qubits always results in an operator on contant number of qubits, so we can't define the time complexity of a N-qubits gate using the number of gates that their composition is this gate...? For instance, in Grover's algorithm in each iteration we use (or compose) N-qubits Hadamard gate, rather than a constant-qubits Hadamard gate, and thus, the result is a N-qubits gate.
  2. Second, according to this, applying Hadamard gate (on arbitrary N) takes more than constant time. So since in each iteration in Grover's algorithm we apply Hadamard gate (for sqrt(N) iterations), so its total time compltexity should be more than sqrt(N)?
Thank you very much! :) 80.246.137.208 (talk) 07:30, 17 July 2015 (UTC)Reply
??? 185.32.178.38 (talk) 06:00, 18 July 2015 (UTC)Reply
Well, a "gate on arbitrary N qubits" isn't really a gate. It's a family of gates parametrized by N. Any particular gate or circuit takes O(1) time. By analogy, counting up to 100 takes O(1) (=O(100)) time, counting to a googol takes O(1) time, counting to any n less than a googolplex takes O(1) time, but counting to any arbitrarily large n takes O(n) time. (Or maybe O(n log n) time, depending on how you do it.)
Grover's algorithm is a bad/weird example because instead of providing the input in the usual way (encoded in the input qubits), it's provided as a gate, and the gate is treated as taking O(1) time to evaluate regardless of the function. As you say, the article also treats the operator Us as taking constant time independent of N, which makes even less sense. I think the article is just wrong. The interesting thing about Grover's algorithm is that it takes O(√N) evaluations of the black-box function. This is interesting because (a) you obviously can't do better than N−1 ∊ O(N) evaluations classically, and (b) the BBBV paper (the article's first reference) proved that you can't do better than O(√N) evaluations quantum mechanically, so Grover's algorithm is optimal. The article is wrong to suggest that it takes O(√N) time (i.e., fundamental steps, i.e., gates). -- BenRG (talk) 06:05, 18 July 2015 (UTC)Reply
I looked now in [Grover's article], and he himself said that it takes O(√N) steps... 185.32.178.38 (talk) 06:59, 18 July 2015 (UTC)Reply
He seems to mean iterations when he says steps. It's a pretty poorly written article, honestly. -- BenRG (talk) 07:07, 18 July 2015 (UTC)Reply
To conclude, what's the time complexity of Grover's algorithm? 80.246.136.20 (talk) 07:32, 18 July 2015 (UTC)Reply
Each iteration requires one evaluation of the function plus, according to this answer, log N additional gates. Since (as that answer points out) it takes log N steps just to read the input, the additional gates can be neglected in any interesting case, so the time complexity is √N times the complexity of evaluating the function. -- BenRG (talk) 08:44, 18 July 2015 (UTC)Reply
So, in the general case, any gate on log(N) qubits takes log(N) time? if not - why (and when) not? 18:18, 18 July 2015 (UTC) — Preceding unsigned comment added by 185.32.178.108 (talk)

Respectsale malware

I have malware called respectsale that displays ads on Google Search and ad links on some buzzwords in a web page. The problem is, I've tried all steps to remove it with no avail. Panda Antivirus, Malwarebytes, SuperAntiSpyware, Adwcleaner, all will not find it. It will not show as an installed program if I go to control panel and click "uninstall a program". The only thing I have found is in Chrome by bringing up the task manager (shift+esc) it shows as an extension that is running, but it will not show if I actually go to the extensions page. How do I remove it? KonveyorBelt 21:49, 16 July 2015 (UTC)Reply

Google, when asked [1], finds
and many other similar pages. Have you tried any of them? --CiaPan (talk) 09:11, 17 July 2015 (UTC)Reply
Those all tell me to remove it from the Windows Control Panel list of installed programs but it doesn't show up there, nor in Chrome if I go to the list of extensions. KonveyorBelt 22:53, 18 July 2015 (UTC)Reply
Update: Malwarebytes found a different malware in the same location /Appdata/Roaming/Google/Chrome/Default and I cleared the entire folder and it all went away. KonveyorBelt 00:44, 19 July 2015 (UTC)Reply

July 17

What is the best way to 'remove hyperlinks' from 'a paragraph', and from 'a document' consisting 'words'? -- Space Ghost (talk) 09:10, 17 July 2015 (UTC)Reply

You need to further define what you are talking about. For example, are you using Microsoft Word and you have a paragraph with links and you want to remove them? Or, do you have an HTML text file and you want to open it in some program and remove the anchor tags? There are many many many more possible ways to interpret your question. 209.149.113.45 (talk) 13:10, 17 July 2015 (UTC)Reply
I'm talking about MS Word, say I copy and paste a paragraph from WP into MS Word, say that paragraph consist of few hyperlinked words, instead of removing it one by one, how do I remove them (all) in one go? -- Space Ghost (talk) 18:51, 17 July 2015 (UTC)Reply
You can avoid the problem by not creating it in the first place. Before you paste into Word. press Ctrl to bring up the little "paste icon" image (it shows up on the lower right for me as a clipboard with a down arrow). You can then press 1 as the shortcut for "paste text only" or click the down arrow and then click the "text only" option. Then, when you paste (until you change the option back to normal "paste all kinds of crap I don't want") it will only paste the text and it won't add styles and other garbage like hyperlinks. 209.149.113.45 (talk) 19:24, 17 July 2015 (UTC)Reply

Heading creation in MS Word 2010

I’m trying to create the ‘10th and 11th Heading’ on MS Word 2010, problem is, it appears the same as ‘Heading 9’ on the ‘navigation’ pane, but I need 10 and 11. Can someone help please?

Note: On the top of the MS Word software (i.e. open) you'll see a 'Home' pane, 'Styles' section is on the right hand side, clearly visible, there is a small option underneath 'Change Styles' option arrow, after clicking that small option arrow, a window appears called 'Styles', 'click the bottom left button' which allows you to create a new style, another window appears called 'Create New Styles from Formatting', 'click the bottom left button' named 'Format', a list of options appears, click 'Paragraph', its window appears, under the 'General' section, there is a option with a 'drop down list' called 'Outline level', I believe I need to do something here...

Space Ghost (talk)

9 heading levels is the maximum Word allows. Indeed if you look at the 'Outline level' dropdown you referred to you'll see it only allows you to select up to level 9. Why do you need more levels? For specific situations, there might be some sort of workaround, but there's no general way to get round this limit. —Noiratsi (talk) 15:23, 17 July 2015 (UTC)Reply
To creating 'Headings'   -- Space Ghost (talk) 18:51, 17 July 2015 (UTC)Reply
Word probably isn't the best too for making outlines with 10 levels of depth. You might want to look at our article Outliner, it lists several programs, many free. Also see some recommendations here [2]. Orgmode is crazy powerful, but Emacs can take a while to learn. You also might be interested in trying out LaTeX - it will let you do pretty much whatever you want. SemanticMantis (talk) 21:22, 17 July 2015 (UTC)Reply

Comparision software

Is there a software which will compare two MS Word documents and highlight/not highlight the matching/non-matching words/sentences/paragraphs, just like Wikipedia, what we can find after going to the 'view history' link page. -- Space Ghost (talk) 09:10, 17 July 2015 (UTC)Reply

MS Word has tools for comparing documents. (In Word 200, go to "review", select "compare">"compare two documents", then select the two versions of the document and what you want to check for). Does this meet your needs, or do you specifically need something that displays the results Wikipedia-style? Iapetus (talk) 09:37, 17 July 2015 (UTC)Reply
Word knows history of the document which allos to trace edits. It might be a good idea to send agreements in PDF file format only. --Hans Haase (有问题吗) 10:05, 17 July 2015 (UTC)Reply
Iapetus: WP style is preferable; its hard to understand the MS Word one. I'm used to WP style as well... -- Space Ghost (talk) 18:52, 17 July 2015 (UTC)Reply
There are various types of diff utility programs out there. See also Comparison_of_file_comparison_tools. Many are free, so you can just try them out. Many will not word directly on .doc/.docx formats, so you would have to paste in as raw text. You can also try various online tools, like this one [3]. SemanticMantis (talk) 19:04, 17 July 2015 (UTC)Reply

Chrome and Java Applications

Are any of the big Java application providers rewriting their code to use PPAPI instead of NPAPI, or are they just abandoning Chrome? I assume Google are hoping for the former. I know Pogo.com are just displaying a notice saying "Important Update: Java No Longer Supported in Google Chrome". Rojomoke (talk) 17:34, 17 July 2015 (UTC)Reply

This is not a problem that Java application developers can solve. This is up to Oracle to develop a java plug-in for PPAPI if it is possible at all. Ruslik_Zero 19:02, 18 July 2015 (UTC)Reply

July 18

Does ESP8266 has an hardware AES engine or not?

ESP8266[4] is a popular wifi-enabled SoC. I'm trying to figure out whether it has a hardware accelerated AES engine or not.

Evidence point to YES:

1. Googling "ESP8266 AES engine" yields dozens of sites saying the affirmative, though most of them likely just copy and pasted that information from somewhere else.

2. ESP8266 contains an ARM Cortex-M4 core. Googling "Cortex-M4 aes" suggests that most manufacturers pair a hardware AES engine with their Cortex-M4 SoCs, so it's likely that ESP8266's manufacturer has done the same.

Evidence point to NO:

1. This repository [5] contains a purely software implementation of AES, would seems to suggest that there's no hardware AES engine, at least not one that's available to the user. My other car is a cadr (talk) 03:14, 18 July 2015 (UTC)Reply

For reference, AES is the Advanced Encryption Standard. Tevildo (talk) 09:23, 18 July 2015 (UTC)Reply
According to the manufacturer's website here, it has an "integrated AES engine". The datasheet is available in various places on the internet, but not legally - I therefore won't link to it. On page 16 of the datasheet, hardware accelerators are listed for CCMP, TKIP, WAPI, WEP and CRC - if the combination of these features counts as an implementation of AES, the answer to your question is "yes". Tevildo (talk) 09:41, 18 July 2015 (UTC)Reply
The datasheet doesn't contain the word "AES" at all though, so that's sort of discouraging. My other car is a cadr (talk) 11:42, 18 July 2015 (UTC)Reply
Has anyone checked the assembly language instruction set? If it contains an AES engine surely there must be an instruction or some registers associated with it. --Guy Macon (talk) 12:54, 18 July 2015 (UTC)Reply

Question about Email - Is it a social engineering scheme?

A family member received this in an email today. He wanted to know whether it is BS.

Dear Winner. This Email is to inform you that your email account has just won you ($750,000.00 USD) from the Google Gmail Promotion, online email lottery powered by Google. A random email balloting of 80 million addresses of people that are active online, among the people that subscribed to Google Mail worldwide. We have selected 7 winners from 80 million emails, without the winner applying. We are congratulating you for being one of the lucky beneficiaries of this annual promotion. However you will have to fill and reply the Below Details To:

[email redacted]

Full name

Contact Address

Age

Telephone Number

Sex

Occupation

Country

STATE

Contact Lottery Events Manager

Submit your information to the Events Manager’s email stated below;

[name redacted]

Contact Email: [email redacted]

(Events Manager)

I said that I thought that it was a scheme to collect personal information, but that I would check. Has anyone seen this? Is this a con game?

Robert McClenon (talk) 23:25, 18 July 2015 (UTC)Reply

Blindingly obvious scam is blindingly obvious: [6] AndyTheGrump (talk) 23:48, 18 July 2015 (UTC)Reply
It isn't blindingly obvious on first glance, because it doesn't ask to send a small payment, which would be advance fee fraud. It did seem to be probably a scam, since, unlike in a multi-state lottery, you haven't bought a ticket. I don't think it was blindingly obvious, which is why I asked. Thank you. Robert McClenon (talk) 00:09, 19 July 2015 (UTC)Reply
Scammers frequently don't ask for money straight off - their initial objective is to find people credulous enough to hand over personal details in return for promises of implausible sums of money. Having found their mark, they can then start spinning the line through personal communication. AndyTheGrump (talk) 00:18, 19 July 2015 (UTC)Reply