Difference between PGP and GPG
Solution 1
PGP can refer to two things:
- The Pretty Good Privacy software originally written by Phil Zimmermann, and now owned by Symantec.
- The formats for keys, encrypted messages and message signatures defined by that software. These have now been formalised as the OpenPGP standard.
The GNU Privacy Guard (GPG) software is an independent implementation of the OpenPGP standards, so you can use it to exchange encrypted messages with people using other OpenPGP implementations (e.g. Symantec's PGP).
Due to its popularity on Linux systems, it is also fairly common for people to incorrectly use the term "GPG" to refer to the whole OpenPGP cryptography system (e.g. "GPG keys" or "GPG signatures"). It is usually pretty clear what they mean from the context though.
Solution 2
“PGP” stands for “Pretty Good Privacy.” It was developed by Phil Zimmermann. At first it was written as copyrighted freeware under the Gnu Public License. Later, PGP was upgraded and made into a propriety program. The rights for this program are traded around. The reason for this upgrade was legal defense costs and royalty issues related to the export laws of the USA. Now the PGP program is owned by PGP Corporation.
Only the command line version is not owned by PGP Corporation which is also not for sale. PGP uses the RSA algorithm and the IDEA encryption algorithm. The PGP is considered to have Windows interface which is more polished
“GPG” stands for “Gnu Privacy Guard.” GPG is a re-write or upgrade of PGP. It does not use the IDEA encryption algorithm. This is to make it completely free. It uses the NIST AES, Advanced Encryption Standard. All the algorithm data is stored and documented publicly by OpenPGP Alliance. The main reason for this change is that AES costs less than IDEA and is considered more secure. Moreover, it is royalty free because it is not patented. GPG is more compatible than the original PGP with OpenPGP. GPG is also based on a command line. Windows frontends are also available for GPG other than the command line.
Solution 3
Gnu Privacy Guard and Pretty Good Privacy -- also referred to as GPG and PGP, respectively -- are data encryption and decryption solutions used for transferring and storing information securely. GPG and PGP are nearly identical, with the major difference between them being how they are licensed to the public.
Read more: The Difference Between GPG and PGP | eHow.com http://www.ehow.com/info_12225332_difference-between-gpg-pgp.html#ixzz26DXDNpJy
Related videos on Youtube
Kevin Fegan
Updated on September 18, 2022Comments
-
Kevin Fegan over 1 year
I want to create a script (JavaScript) to enumerate through all "radio" elements searching for those that have an "ID" (or perhaps "Name" and "Value") that matches some regexs. If there is a match, I'll execute additional code depending on which regex matched. Searching by "ID" should be easier than searching by "Name" and "Value", but in some cases the elements don't have an "ID", so in those cases, I'd search for a regex match by "Name" and "Value".
Here are some typical sets of "radio" elements:
<span> <input id="ABC123" onclick="somefunction('DEF');" name="GHI" value="JKL45" type="radio"> <input id="MNO678" onclick="somefunction('PQR');" name="GHI" value="STU90" type="radio"> </span> <span> <input name="GHI" value="JKL45" type="radio"> <input name="GHI" value="STU90" type="radio"> </span>
I have most of the JavaScript worked out below. This script will be saved as the "URL" of a web-browser shortcut (bookmark/favorite). This is generally referred to as a "Bookmarklet" (or "Favlet" for IE).
Here's what I have so far:
javascript: (function(){ function dorado(rado){ /* Here I want to test if the value of the "ID" for the element "rado" matches any 1 of 2-or-3 different regex's. If there is no "ID" then I'd test "Name" and "Value" If none of the regex's match, I'll return. Otherwise, I'll execute additional code depending on which regex matched. */ } var x,k,f,j; x=document.forms; for (k=0; k<x.length; ++k) { f=x[k]; for (j=0;j<f.length;++j) // call dorado() only for "radio" elements. if (f[j].type.toLowerCase() == "radio") dorado(f[j]); } } )();
Edited: 9/11/2013 5:48 PM (CT), additional details provided.A little clarification... "radio-id" attribute should uniquely identify each
"<input"
element on the page of type "radio". In some cases, an"<input"
element may not have its "ID" attribute set. In those cases, I have to inspect "radio-name" and "radio-value", together, because "radio-name" will not uniquely identify each radio element in cases where radio buttons are grouped together for selection as "1 of many" ("radio-name" will usually be the same for all grouped radio elements), and "radio-value" may be the same for many radio elements on the page.So, as I am inspecting each "radio" element (in a loop), I first need to determine if the "radio-id" attribute is set.
If the "radio-id" attribute is set, I'll need to test if the "ID" matches any 1 of 2-or-3 different regex expressions. If nothing matches, I'll just "return". Otherwise, I'll execute additional code depending on which regex matched.
Likewise, if the "radio-id" attribute is NOT set, I'll need to test if the "name" and "value" matches any 1 of 2-or-3 different regex expressions. If nothing matches, I'll just "return". Otherwise, I'll execute additional code depending on which regex matched. For the purpose of the regex, the "name" and "value" could be tested together by combining them something like this:
radioName = /* name attribute of element */; radioValue = /* value attribute of element */; teststr = radioName . ":" . radioValue;
It would probably be easiest to pre-define the regex expression strings like:
var IDregexlist=new Array("/test1/","/test2/","/test3/"); /* example: "/ABC[0-9]+/", "/MNO[0-9]+/" ... */ var NVregexlist=new Array("/test4/","/test5/","/test6/"); /* example: "/GHI:JKL[0-9]+/", "/GHI:STU[0-9]+/" ... */
then in the dorado function, test for regex match of each item in the arrays like:
for each (rexpr in IDregexlist) {... };
I shouldn't have a problem with the bulk of the JavaScript code, except I need to know, within the function dorado(rado){ ... }:
- How to get the "ID, "name" and "value" of the element (would this just be "rado.id", "rado.name", and "rado.value"?)
- how to do the regex match tests and how to tell if an expression matched.
-
thgaskell over 10 yearsCould you give an example of the regex you're trying to match?
-
Kevin Fegan over 10 years@thgaskell - It would be something like a fixed string followed by an underscore followed by some numbers, so the regex search expression would be something like
/ABC_[0-9]+/
.
-
Keith Thompson over 11 yearsAre you sure the original version was GPL? The Wikipedia article just says that "No license was required for its non-commercial use".
-
James Henstridge over 11 yearsI'm pretty sure it wasn't ever GPL: if it was, there wouldn't have been a need for GPG to be a clean room implementation.
-
Kevin Fegan over 10 yearsThanks for taking the time to provide your answer. This is a little more advanced than I can wrap my newbie brain around. In the line:
"radios.forEach(function(radio) {"
, where does"function(radio)"
come from. Also, in"function doRado(radio) {"
, I assume"radio.id"
returns the ID attribute of the radio element. -
c.P.u1 over 10 yearsThe entire statement
radios.forEach...
is similar to using a for loop. In each iterationforEach
assigns theradio
parameter to the current array element(radios[0], radios[1],..., radios[i])
. Yes, radio.id, radio.name correspond to the radio button's attributes. Theradios
array contains all<input type="radio"/>
elements, soradio
infunction doRado()
refers to one of those elements. In fact, the entire iteration part is similar to yours, you can substitute yourdorado
withdoRado
-
Kevin Fegan over 10 yearsIn line
"radios.forEach(function(radio) {..."
, your use of"function('object')"
confuses me. Is"function('object')"
just a "Template" to define the name of the (forEach) variable used in the function inside the "{}"? Could"radios.forEach(function(radio) {..."
be rewritten as:"for each (radio in radios) {doRado(radio);}"
? (I also edited my question to provide additional details). -
vcardillo over 7 years"GPG is a re-write or upgrade of PGP." That's false. GPG is an implementation of OpenPGP.
-
darryn.ten over 6 yearsLink is broken.
-
Ilja over 6 yearsI was confused by github using the term GPG key ... so this is wrong technically? You reassure me that my understanding was correct, thanks :)
-
mateuscb over 5 yearsThe downside of links. Thankfully: archive.org
-
Elijah Lynn about 5 yearsThis answer could be improved by being more clear about the term "GPG Keys" being the incorrect or correct usage.
-
AkaZecik almost 5 yearsAre you the author of this article? Your answer contains a word-for-word portion of that article and the article was written before your answer was.